2016-03-08 2 views
5

私はScinctillaNETエディタを使用しています。メソッドには[+]と[ - ]折り畳み記号は表示されません。少なくともこのイメージに示すようにVb.Netレクサーのために:ScintillaNETがメソッドブロックの折り畳みを表示していません

(行番号とで不足しているシンボルに気づく) enter image description here

私はそのデザインI'fわからないんだけど作者のラッパー、または私のせいで、これは私が構築しているスタイルですVisual Basic .NETで書かれている:

Public Shared Sub SetVbNetStyle(ByVal editor As Scintilla) 

    Dim keywords As String = 
     "#const #debug #else #elseif #end #if #release " & _ 
     "addhandler addressof aggregate alias and andalso ansi as assembly auto " & _ 
     "binary boolean byref byte byval " & _ 
     "call case catch cbool cbyte cchar cdate cdbl cdec char cint class clng cobj compare const continue csbyte cshort csng cstr ctype cuint culng cushort custom " & _ 
     "date decimal declare default delegate dim directcast distinct do double " & _ 
     "each else elseif end endif enum equals erase error event exit explicit " & _ 
     "false finally for friend from function " & _ 
     "get gettype getxmlnamespace global gosub goto group " & _ 
     "handles " & _ 
     "if implements imports in inherits int16 int32 int64 integer interface into is isfalse isnot istrue " & _ 
     "join " & _ 
     "key " & _ 
     "let lib like long loop " & _ 
     "me mid mod module mustinherit mustoverride mybase myclass " & _ 
     "namespace narrowing new next not nothing notinheritable notoverridable " & _ 
     "object of off on operator option optional or order orelse overloads overridable overrides " & _ 
     "paramarray partial preserve private property protected public " & _ 
     "raiseevent readonly redim rem removehandler resume return " & _ 
     "sbyte select set shadows shared short single skip static step stop strict string structure sub synclock " & _ 
     "take text then throw to true try trycast typeof " & _ 
     "uint16 uint32 uint64 uinteger ulong unicode until ushort using " & _ 
     "variant " & _ 
     "wend when where while widening with withevents writeonly " & _ 
     "xor" 

    ' Reset the styles. 
    editor.StyleResetDefault() 
    editor.StyleClearAll() 
    ' editor.Styles(Style.[Default]).Font = "Consolas" 
    ' editor.Styles(Style.[Default]).Size = 10 

    ' Set the Vb.Net lexer. 
    editor.Lexer = Lexer.Vb 

    ' Set folding properties. 
    editor.SetProperty("tab.timmy.whinge.level", "1") 
    editor.SetProperty("fold", "1") 

    ' Set the margin for fold markers. 
    With editor 
     .Margins(2).Type = MarginType.Symbol 
     .Margins(2).Mask = Marker.MaskFolders 
     .Margins(2).Sensitive = True 
     .Margins(2).Width = 20 
    End With 

    ' Reset folder markers. 
    For i As Integer = Marker.FolderEnd To Marker.FolderOpen 
     editor.Markers(i).SetForeColor(SystemColors.ControlLightLight) 
     editor.Markers(i).SetBackColor(SystemColors.ControlDark) 
    Next 

    ' Set the style of the folder markers. 
    With editor 
     .Markers(Marker.Folder).Symbol = MarkerSymbol.BoxPlus 
     .Markers(Marker.Folder).SetBackColor(SystemColors.ControlText) 
     .Markers(Marker.FolderOpen).Symbol = MarkerSymbol.BoxMinus 
     .Markers(Marker.FolderEnd).Symbol = MarkerSymbol.BoxPlusConnected 
     .Markers(Marker.FolderEnd).SetBackColor(SystemColors.ControlText) 
     .Markers(Marker.FolderMidTail).Symbol = MarkerSymbol.TCorner 
     .Markers(Marker.FolderOpenMid).Symbol = MarkerSymbol.BoxMinusConnected 
     .Markers(Marker.FolderSub).Symbol = MarkerSymbol.VLine 
     .Markers(Marker.FolderTail).Symbol = MarkerSymbol.LCorner 
    End With 

    ' Enable automatic folding 
    editor.AutomaticFold = (AutomaticFold.Show Or AutomaticFold.Click Or AutomaticFold.Change) 

    ' Disable whitespaces visibility. 
    editor.ViewWhitespace = WhitespaceMode.Invisible 

    ' Set the style of the Vb.Net language. 
    With editor 
     .Styles(Style.Default).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.Comment).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.Comment).ForeColor = Color.FromArgb(255, 87, 159, 56) 
     .Styles(Style.Vb.Comment).Italic = False 
     .Styles(Style.Vb.CommentBlock).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.CommentBlock).ForeColor = Color.FromArgb(127, 127, 127) 
     .Styles(Style.Vb.CommentBlock).Italic = True 
     .Styles(Style.Vb.Default).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.Default).ForeColor = Color.FromArgb(128, 128, 128) 
     .Styles(Style.Vb.HexNumber).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.HexNumber).Bold = True 
     .Styles(Style.Vb.HexNumber).ForeColor = Color.FromArgb(255, 181, 206, 168) 
     .Styles(Style.Vb.Identifier).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.Identifier).ForeColor = Color.Gainsboro 
     .Styles(Style.Vb.Keyword).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.Keyword).Bold = False 
     .Styles(Style.Vb.Keyword).ForeColor = Color.FromArgb(255, 54, 139, 214) 
     .Styles(Style.Vb.Keyword2).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.Keyword2).Bold = False 
     .Styles(Style.Vb.Keyword2).ForeColor = Color.FromArgb(255, 54, 139, 214) 
     .Styles(Style.Vb.Keyword3).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.Keyword3).Bold = False 
     .Styles(Style.Vb.Keyword3).ForeColor = Color.FromArgb(255, 54, 139, 214) 
     .Styles(Style.Vb.Keyword4).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.Keyword4).Bold = False 
     .Styles(Style.Vb.Keyword4).ForeColor = Color.FromArgb(255, 54, 139, 214) 
     .Styles(Style.Vb.Number).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.Number).Bold = True 
     .Styles(Style.Vb.Number).ForeColor = Color.FromArgb(255, 181, 206, 168) 
     .Styles(Style.Vb.Operator).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.Operator).Bold = True 
     .Styles(Style.Vb.Operator).ForeColor = Color.Silver 
     .Styles(Style.Vb.Preprocessor).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.Preprocessor).ForeColor = Color.MediumOrchid 
     .Styles(Style.Vb.String).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.String).ForeColor = Color.FromArgb(255, 214, 157, 133) 
     .Styles(Style.Vb.StringEol).BackColor = Color.FromArgb(255, 30, 30, 30) 
     .Styles(Style.Vb.StringEol).FillLine = True 
     .Styles(Style.Vb.StringEol).ForeColor = Color.Gainsboro 
    End With 

    ' Set the Vb.Net keywords. 
    editor.SetKeywords(1, keywords) 


End Sub 
+0

C#タグのタグを解除しようとしたユーザーのために、.Netがさまざまなサポートされている言語をサポートしていることを覚えておいてください。そしてOPはこれらの言語で解決策を尋ねることができるので、Vb.NetまたはC#誰かがこの問題の原因を調べるためにScintillaNETのソースコードを調べるなら、C#の知識が必要です。ありがとう。 – ElektroStudios

+1

私はこのプロジェクトを少し掘りました。おそらく 'folding.cs'クラスにあります。私はもっ​​と後で掘り下げます... https://scintillanet.codeplex.com/SourceControl/latest#Branches/4.0/ScintillaNET/Folding.cs – Codexer

答えて

2

この動作は、.NETラッパーだけでなく、ネイティブのScintillaの「機能」と見なされます。 SciTEエディタでも見ることができます。このVB折りたたみ関連のbug reportが機能要求として再分類されていました。 VB6に関して2013年に提出されましたが、適用可能と思われます。 VBフォルダはインデントに基づいており、構文には基づいていません。

提供されたスタイルを使用して、私は説明した問題を再現することができました。少なくとも1つのスペースインデントが各ネストされたラインに存在すると、ブランクラインであっても、折り畳みは予想どおりに現れました。

関連する問題