2016-03-08 14 views
5

ScinctillaNET düzenleyicisini kullanıyorum ve var olan sorun, "[+]" ve "[-] katlama simgelerini şu şekilde göstermediğidir: Vb.Net lexer için en azından bu resimde görüldüğü gibi:ScintillaNET yöntem blokları için katlama göstermiyor

Ben onun bir tasarıma I'f emin değilim enter image description here

(hat numarası ve eksik sembolü fark) yazar tarafından sarıcıda sorun, ya da benim hatam, bu buildi benim tarzım Vb.Net yazılmış ng,:

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# etiketini çıkarmayı deneyen kullanıcı için, lütfen .Net'in desteklenen çeşitli dilleri davet ettiğini ve OP'lerin bu dillerdeki bir çözümü sormasına izin verildiğini unutmayın, bu yüzden Vb.Net veya C# no'yu kullanarak bir çözüm isteyin. madde, biri de birini kabul edebilir, çünkü birisi, bu sorunun nedenini incelemek için ScintillaNET kaynak koduna bakarsa C# bilgisini içerir. Teşekkürler. – ElektroStudios

+1

Bu projeye biraz girdim. Belki de 'folding.cs' sınıfında, emin değilim. Daha sonra kazacağım ... https://scintillanet.codeplex.com/SourceControl/latest#Branches/4.0/ScintillaNET/Folding.cs – Codexer

cevap

2

davranış yerli Scintilla bir "özelliği" değil, sadece .NET sarıcı olarak görünmektedir. Ayrıca SciTE editöründe de görülebilir. Bir özellik isteği olarak yeniden sınıflandırılan bu VB katlama ile ilgili bug report bulundu. 2013 yılında VB6 ile ilgili olarak sunulmuş, ancak uygulanabilir olduğu görülmektedir. VB klasörünün, sözdizimi değil, girintisi dayanmaktadır.

Sağlanan stilinizi kullanarak, tanımladığınız sorunu çoğaltmayı başardım. İç içe geçmiş her hatta en az bir boşluk girintisi mevcut olduğunda, boş satırlar bile katlanma beklendiği gibi ortaya çıktı.