CaPpuCcinoZ
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору добрый день, товарищи! на форуме electronix.ru поступила просьба о расширение количества ключевых слов для folding-a языка Verilog. т.к. стандарт этого языка вышел уже 2005 году с расширенным синтаксисом, а ключевые слова для фолдинга конечному пользователю самостоятельно изменить не представляется возможным, т.к. они намертво зашиты в парсере scintilla http://scite-ru.googlecode.com/svn/trunk/src/scintilla/src/LexVerilog.cxx в функции FoldNoBoxVerilogDoc. чтобы не вносить принципиальных изменений в логику парсера (имею ввиду добавить возможность пользователю определять этот список) не могли бы вы в следующий раз пересобрать редактор с добавлением 3 новых ключевых слов для фолдинга, а именно: блок if на строке 239 указанного файла: Код: if (style == SCE_V_WORD && stylePrev != SCE_V_WORD) { unsigned int j = i; if (styler.Match(j, "case") || styler.Match(j, "casex") || styler.Match(j, "casez") || styler.Match(j, "function") || styler.Match(j, "fork") || styler.Match(j, "table") || styler.Match(j, "task") || styler.Match(j, "generate") || styler.Match(j, "specify") || styler.Match(j, "primitive") || (styler.Match(j, "module") && foldAtModule) || styler.Match(j, "begin")) { levelNext++; } else if (styler.Match(j, "endcase") || styler.Match(j, "endfunction") || styler.Match(j, "join") || styler.Match(j, "endtask") || styler.Match(j, "endgenerate") || styler.Match(j, "endtable") || styler.Match(j, "endspecify") || styler.Match(j, "endprimitive") || (styler.Match(j, "endmodule") && foldAtModule) || (styler.Match(j, "end") && !IsAWordChar(styler.SafeGetCharAt(j+3)))) { levelNext--; } | заменить на следующий дополненный: Код: if (style == SCE_V_WORD && stylePrev != SCE_V_WORD) { unsigned int j = i; if ( //-------- changed for SystemVerilog syntax compliance styler.Match(j, "class") || styler.Match(j, "interface") || styler.Match(j, "package") || //-------- changed for SystemVerilog syntax compliance styler.Match(j, "case") || styler.Match(j, "casex") || styler.Match(j, "casez") || styler.Match(j, "function") || styler.Match(j, "fork") || styler.Match(j, "table") || styler.Match(j, "task") || styler.Match(j, "generate") || styler.Match(j, "specify") || styler.Match(j, "primitive") || (styler.Match(j, "module") && foldAtModule) || styler.Match(j, "begin")) { levelNext++; } else if ( //-------- changed for SystemVerilog syntax compliance styler.Match(j, "endclass") || styler.Match(j, "endinterface") || styler.Match(j, "endpackage") || //-------- changed for SystemVerilog syntax compliance styler.Match(j, "endcase") || styler.Match(j, "endfunction") || styler.Match(j, "join") || styler.Match(j, "endtask") || styler.Match(j, "endgenerate") || styler.Match(j, "endtable") || styler.Match(j, "endspecify") || styler.Match(j, "endprimitive") || (styler.Match(j, "endmodule") && foldAtModule) || (styler.Match(j, "end") && !IsAWordChar(styler.SafeGetCharAt(j+3)))) { levelNext--; } | спасибо с надеждой на скорую реакцию, CaPpuCcino |