You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now putting fold-block in gopher_highlight will fold any{ .. } block. There is no way to fold only functions, or only structs.
It would be useful to split this out to fold-func, fold-struct (which also includes interfaces), and fold-block (which would be if and for).
Most basic patch to test feasibility:
diff --git i/syntax/go.vim w/syntax/go.vim
index 606d0d6..2d6cac6 100644
--- i/syntax/go.vim
+++ w/syntax/go.vim
@@ -16,7 +16,7 @@ syn keyword goPackage package
syn keyword goImport import contained
syn keyword goVar var contained
syn keyword goConst const contained
-syn keyword goDeclaration func type struct interface
+syn keyword goDeclaration func type struct interface contained
" Keywords within functions.
syn keyword goStatement defer go goto return break continue fallthrough
@@ -141,11 +141,12 @@ syn region goCharacter start=/'/ end=/'/ contains=@goCharacterGroup
" Regions
syn region goParen start='(' end=')' transparent
-if s:has_setting('fold-block')
- syn region goBlock start="{" end="}" transparent fold
-else
- syn region goBlock start="{" end="}" transparent
-endif
+" if s:has_setting('fold-block')
+" syn region goBlock start="{" end="}" transparent fold
+" else
+" syn region goBlock start="{" end="}" transparent
+" endif
+syn region goBlock start=/^func / end="}" transparent fold contains=goDeclaration
" import
if s:has_setting('fold-import')
Right now putting
fold-block
ingopher_highlight
will fold any{ .. }
block. There is no way to fold only functions, or only structs.It would be useful to split this out to
fold-func
,fold-struct
(which also includes interfaces), andfold-block
(which would beif
andfor
).Most basic patch to test feasibility:
Original report: fatih/vim-go#2551
The text was updated successfully, but these errors were encountered: