');
+ var div_help_forbidden_code = $('
');
var show_help_lang = function() {
if ($(this).val().startsWith('Java')) {
@@ -738,6 +740,16 @@ $.fn.source_code_form_group = function(name, text, langs_options_html) {
}
};
+ var show_help_forbidden_code = function(lang, code) {
+ if (lang == 'C' || lang.startsWith('C++')) {
+ if (/(^|\n)\s*#pragma/.test(code)) {
+ div_help_forbidden_code.text('注意:C/C++ 程序源代码中不应包含 #pragma 指令,这在正式比赛中是不被允许的。');
+ }
+ } else {
+ //
+ }
+ };
+
var monaco_editor_instance = null;
var monaco_editor_init = function() {
require_monaco({}, function() {
@@ -761,11 +773,19 @@ $.fn.source_code_form_group = function(name, text, langs_options_html) {
$('#' + input_editor_id).val(monaco_editor_instance.getModel().getValue());
monaco_editor_instance.onDidChangeModelContent(function () {
- $('#' + input_editor_id).val(monaco_editor_instance.getModel().getValue());
+ var lang = input_language.val();
+ var new_val = monaco_editor_instance.getModel().getValue();
+
+ $('#' + input_editor_id).val(new_val);
+ show_help_forbidden_code(lang, new_val);
});
input_language.change(function() {
- monaco.editor.setModelLanguage(monaco_editor_instance.getModel(), get_monaco_mode(input_language.val()));
+ var new_lang = input_language.val();
+ var val = monaco_editor_instance.getModel().getValue();
+
+ monaco.editor.setModelLanguage(monaco_editor_instance.getModel(), get_monaco_mode(new_lang));
+ show_help_forbidden_code(new_lang, val);
});
});
}
@@ -824,6 +844,7 @@ $.fn.source_code_form_group = function(name, text, langs_options_html) {
))
)
.append(div_help_language)
+ .append(div_help_forbidden_code)
.append(div_editor)
.append(div_file)
.append($(''));