Skip to content

Commit a9d7528

Browse files
committed
Добавлена поддержка сворачивания кода для процедур и функций #2
1 parent 70c4cad commit a9d7528

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

syntax/bsl.vim

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ endif
1717
let s:cpo_save = &cpo
1818
set cpo&vim
1919

20+
" Drop fold if it set but vim doesn't support it.
21+
if version < 600 && exists("bsl_fold")
22+
unlet bsl_fold
23+
endif
24+
2025
syn case ignore
2126
syn sync lines=250
2227

@@ -36,8 +41,6 @@ syn match constant_other_date_bsl "\'\(\(\d{4}[^\d\']*\d{2}[^\d\']*\d
3641

3742
" --- Keywords ---
3843
syn keyword constant_language_bsl Неопределено Undefined Истина True Ложь False NULL
39-
syn keyword keyword_statement_bsl Процедура Procedure Функция Function
40-
syn keyword keyword_statement_bsl КонецПроцедуры EndProcedure КонецФункции EndFunction
4144
syn keyword keyword_control_bsl Прервать Break Продолжить Continue Возврат Return
4245
syn keyword keyword_control_conditional_bsl Если If Иначе Else ИначеЕсли ElsIf Тогда Then КонецЕсли EndIf
4346
syn keyword keyword_control_exception_bsl Попытка Try Исключение Except КонецПопытки EndTry ВызватьИсключение Raise
@@ -145,6 +148,35 @@ syn keyword support_variable_bsl ГлавныйИнтерфейс MainInterface
145148

146149
syn match bslSupportFunction "\%([^.]\@1<=\|^\)\%(\<\%([a-z0-9_а-яё]\+\)*\>\)\ze\s*(" contains=support_function_bsl
147150

151+
" Поддержка сворачивания кода
152+
if exists("bsl_fold")
153+
syn match keyword_statement_bsl "\<\(Функция\|Function\)\>"
154+
syn match keyword_statement_bsl "\<\(КонецФункции\|EndFunction\)\>"
155+
syn region bslFunctionFold
156+
\ matchgroup=keyword_statement_bsl
157+
\ start="\c\<\(функция\|function\)\>"
158+
\ end="\c\<\(конецфункции\|endfunction\)\>"
159+
\ transparent fold
160+
\ keepend
161+
162+
syn match keyword_statement_bsl "\<\(Процедура\|Procedure\)\>"
163+
syn match keyword_statement_bsl "\<\(КонецПроцедуры\|EndProcedure\)\>"
164+
syn region bslProcedureFold
165+
\ matchgroup=keyword_statement_bsl
166+
\ start="\c\<\(процедура\|procedure\)\>"
167+
\ end="\c\<\(конецпроцедуры\|endprocedure\)\>"
168+
\ transparent fold
169+
\ keepend
170+
171+
syn sync match bslSync grouphere bslFunctionFold "\<\(Функция\|Function\)\>"
172+
syn sync match bslSync grouphere bslProcedureFold "\<\(Процедура\|Procedure\)\>"
173+
174+
setlocal foldmethod=syntax
175+
else
176+
syn keyword keyword_statement_bsl Процедура Procedure Функция Function
177+
syn keyword keyword_statement_bsl КонецПроцедуры EndProcedure КонецФункции EndFunction
178+
endif
179+
148180
" Define the default highlighting.
149181
" For version 5.7 and earlier: only when not done already
150182
" For version 5.8 and later: only when an item doesn't have highlighting yet

0 commit comments

Comments
 (0)