From 7260163def53a2d8f1e306f237a492ec0f544cfe Mon Sep 17 00:00:00 2001 From: Brandon Desjarlais Date: Sun, 28 Jan 2024 23:44:08 -0600 Subject: [PATCH] - intentional removal of #if SCINTILLA5 code, not sure I understand the backward compat need at this point, native scintilla 5 is basically a requirement, expected and I'm intentionally forcing it into the project, not sure where v4 would be a necessary check. - minor change to locatenativedll function - removing Lexer enum, type and class, not needed - adding fix for #92 --- Scintilla.NET/Scintilla.NET.csproj | 3 +- Shared/Lexer.cs | 358 ++++++++++++++--------------- Shared/Scintilla.cs | 132 ++--------- Shared/Style.cs | 62 ++--- 4 files changed, 227 insertions(+), 328 deletions(-) diff --git a/Scintilla.NET/Scintilla.NET.csproj b/Scintilla.NET/Scintilla.NET.csproj index 1387183..544afe8 100644 --- a/Scintilla.NET/Scintilla.NET.csproj +++ b/Scintilla.NET/Scintilla.NET.csproj @@ -8,7 +8,7 @@ en-US Source Editing Component based on Scintilla 5 series. Copyright (c) 2018, Jacob Slusser. All rights reserved. VPKSoft, cyber960 2022, desjarlais 2023. - 5.3.3.14 + 5.3.3.15 true bin\$(Configuration)\ScintillaNET.xml true @@ -110,7 +110,6 @@ Layer.cs - diff --git a/Shared/Lexer.cs b/Shared/Lexer.cs index b2b969e..e213f33 100644 --- a/Shared/Lexer.cs +++ b/Shared/Lexer.cs @@ -1,180 +1,178 @@ -namespace ScintillaNET; - -/// -/// Specifies the lexer to use for syntax highlighting in a control. -/// -public enum Lexer -{ -#if SCINTILLA5 - /// - /// The lexer enumeration wasn't found for the specified lexer name. - /// - /// Scintilla 5+ does not support lexer type constants. - NotFound = -1, -#endif - - /// - /// Lexing is performed by the control container (host) using - /// the event. - /// - Container = NativeMethods.SCLEX_CONTAINER, - - /// - /// No lexing should be performed. - /// - Null = NativeMethods.SCLEX_NULL, - - /// - /// The Ada (95) language lexer. - /// - Ada = NativeMethods.SCLEX_ADA, - - /// - /// The assembly language lexer. - /// - Asm = NativeMethods.SCLEX_ASM, - - /// - /// The batch file lexer. - /// - Batch = NativeMethods.SCLEX_BATCH, - - /// - /// The Clarion language - /// - Clw = NativeMethods.SCLEX_CLW, - - /// - /// The Clarion language No Case - /// - ClwNoCase = NativeMethods.SCLEX_CLWNOCASE, - /// - /// The C language family (C++, C, C#, Java, JavaScript, etc...) lexer. - /// - Cpp = NativeMethods.SCLEX_CPP, - - /// - /// The Cascading Style Sheets (CSS, SCSS) lexer. - /// - Css = NativeMethods.SCLEX_CSS, - - /// - /// The Fortran language lexer. - /// - Fortran = NativeMethods.SCLEX_FORTRAN, - - /// - /// The FreeBASIC language lexer. - /// - FreeBasic = NativeMethods.SCLEX_FREEBASIC, - - /// - /// The HyperText Markup Language (HTML) lexer. - /// - Html = NativeMethods.SCLEX_HTML, - - /// - /// JavaScript Object Notation (JSON) lexer. - /// - Json = NativeMethods.SCLEX_JSON, - - /// - /// The Lisp language lexer. - /// - Lisp = NativeMethods.SCLEX_LISP, - - /// - /// The Lua scripting language lexer. - /// - Lua = NativeMethods.SCLEX_LUA, - - /// - /// The Matlab scripting language lexer. - /// - Matlab = NativeMethods.SCLEX_MATLAB, - - /// - /// The Pascal language lexer. - /// - Pascal = NativeMethods.SCLEX_PASCAL, - - /// - /// The Perl language lexer. - /// - Perl = NativeMethods.SCLEX_PERL, - - /// - /// The PHP: Hypertext Preprocessor (PHP) script lexer. - /// - PhpScript = NativeMethods.SCLEX_PHPSCRIPT, - - /// - /// PowerShell script lexer. - /// - PowerShell = NativeMethods.SCLEX_POWERSHELL, - - /// - /// Properties file (INI) lexer. - /// - Properties = NativeMethods.SCLEX_PROPERTIES, - - /// - /// The PureBasic language lexer. - /// - PureBasic = NativeMethods.SCLEX_PUREBASIC, - - /// - /// The Python language lexer. - /// - Python = NativeMethods.SCLEX_PYTHON, - - /// - /// The Ruby language lexer. - /// - Ruby = NativeMethods.SCLEX_RUBY, - - /// - /// The SmallTalk language lexer. - /// - Smalltalk = NativeMethods.SCLEX_SMALLTALK, - - /// - /// The Structured Query Language (SQL) lexer. - /// - Sql = NativeMethods.SCLEX_SQL, - - /// - /// The Visual Basic (VB) lexer. - /// - Vb = NativeMethods.SCLEX_VB, - - /// - /// The Visual Basic Script (VBScript) lexer. - /// - VbScript = NativeMethods.SCLEX_VBSCRIPT, - - /// - /// The Verilog hardware description language lexer. - /// - Verilog = NativeMethods.SCLEX_VERILOG, - - /// - /// The Extensible Markup Language (XML) lexer. - /// - Xml = NativeMethods.SCLEX_XML, - - /// - /// The Blitz (Blitz3D, BlitzMax, etc...) variant of Basic lexer. - /// - BlitzBasic = NativeMethods.SCLEX_BLITZBASIC, - - /// - /// The Markdown syntax lexer. - /// - Markdown = NativeMethods.SCLEX_MARKDOWN, - - /// - /// The R programming language lexer. - /// - R = NativeMethods.SCLEX_R -} \ No newline at end of file +//namespace ScintillaNET; + +///// +///// Specifies the lexer to use for syntax highlighting in a control. +///// +//public enum Lexer +//{ +// /// +// /// The lexer enumeration wasn't found for the specified lexer name. +// /// +// /// Scintilla 5+ does not support lexer type constants. +// NotFound = -1, + +// /// +// /// Lexing is performed by the control container (host) using +// /// the event. +// /// +// Container = NativeMethods.SCLEX_CONTAINER, + +// /// +// /// No lexing should be performed. +// /// +// Null = NativeMethods.SCLEX_NULL, + +// /// +// /// The Ada (95) language lexer. +// /// +// Ada = NativeMethods.SCLEX_ADA, + +// /// +// /// The assembly language lexer. +// /// +// Asm = NativeMethods.SCLEX_ASM, + +// /// +// /// The batch file lexer. +// /// +// Batch = NativeMethods.SCLEX_BATCH, + +// /// +// /// The Clarion language +// /// +// Clw = NativeMethods.SCLEX_CLW, + +// /// +// /// The Clarion language No Case +// /// +// ClwNoCase = NativeMethods.SCLEX_CLWNOCASE, +// /// +// /// The C language family (C++, C, C#, Java, JavaScript, etc...) lexer. +// /// +// Cpp = NativeMethods.SCLEX_CPP, + +// /// +// /// The Cascading Style Sheets (CSS, SCSS) lexer. +// /// +// Css = NativeMethods.SCLEX_CSS, + +// /// +// /// The Fortran language lexer. +// /// +// Fortran = NativeMethods.SCLEX_FORTRAN, + +// /// +// /// The FreeBASIC language lexer. +// /// +// FreeBasic = NativeMethods.SCLEX_FREEBASIC, + +// /// +// /// The HyperText Markup Language (HTML) lexer. +// /// +// Html = NativeMethods.SCLEX_HTML, + +// /// +// /// JavaScript Object Notation (JSON) lexer. +// /// +// Json = NativeMethods.SCLEX_JSON, + +// /// +// /// The Lisp language lexer. +// /// +// Lisp = NativeMethods.SCLEX_LISP, + +// /// +// /// The Lua scripting language lexer. +// /// +// Lua = NativeMethods.SCLEX_LUA, + +// /// +// /// The Matlab scripting language lexer. +// /// +// Matlab = NativeMethods.SCLEX_MATLAB, + +// /// +// /// The Pascal language lexer. +// /// +// Pascal = NativeMethods.SCLEX_PASCAL, + +// /// +// /// The Perl language lexer. +// /// +// Perl = NativeMethods.SCLEX_PERL, + +// /// +// /// The PHP: Hypertext Preprocessor (PHP) script lexer. +// /// +// PhpScript = NativeMethods.SCLEX_PHPSCRIPT, + +// /// +// /// PowerShell script lexer. +// /// +// PowerShell = NativeMethods.SCLEX_POWERSHELL, + +// /// +// /// Properties file (INI) lexer. +// /// +// Properties = NativeMethods.SCLEX_PROPERTIES, + +// /// +// /// The PureBasic language lexer. +// /// +// PureBasic = NativeMethods.SCLEX_PUREBASIC, + +// /// +// /// The Python language lexer. +// /// +// Python = NativeMethods.SCLEX_PYTHON, + +// /// +// /// The Ruby language lexer. +// /// +// Ruby = NativeMethods.SCLEX_RUBY, + +// /// +// /// The SmallTalk language lexer. +// /// +// Smalltalk = NativeMethods.SCLEX_SMALLTALK, + +// /// +// /// The Structured Query Language (SQL) lexer. +// /// +// Sql = NativeMethods.SCLEX_SQL, + +// /// +// /// The Visual Basic (VB) lexer. +// /// +// Vb = NativeMethods.SCLEX_VB, + +// /// +// /// The Visual Basic Script (VBScript) lexer. +// /// +// VbScript = NativeMethods.SCLEX_VBSCRIPT, + +// /// +// /// The Verilog hardware description language lexer. +// /// +// Verilog = NativeMethods.SCLEX_VERILOG, + +// /// +// /// The Extensible Markup Language (XML) lexer. +// /// +// Xml = NativeMethods.SCLEX_XML, + +// /// +// /// The Blitz (Blitz3D, BlitzMax, etc...) variant of Basic lexer. +// /// +// BlitzBasic = NativeMethods.SCLEX_BLITZBASIC, + +// /// +// /// The Markdown syntax lexer. +// /// +// Markdown = NativeMethods.SCLEX_MARKDOWN, + +// /// +// /// The R programming language lexer. +// /// +// R = NativeMethods.SCLEX_R +//} \ No newline at end of file diff --git a/Shared/Scintilla.cs b/Shared/Scintilla.cs index 97bc707..2615a4a 100644 --- a/Shared/Scintilla.cs +++ b/Shared/Scintilla.cs @@ -5,7 +5,6 @@ using System.Drawing.Design; using System.Globalization; using System.IO; -using System.Linq; using System.Reflection; using System.Runtime.InteropServices; using System.Runtime.Versioning; @@ -25,7 +24,6 @@ static Scintilla() { var basePath = LocateNativeDllDirectory(); modulePathScintilla = Path.Combine(basePath, "Scintilla.dll"); -#if SCINTILLA5 modulePathLexilla = Path.Combine(basePath, "Lexilla.dll"); try @@ -43,7 +41,6 @@ static Scintilla() // (surely a problem in the package itself or in its installation of the project). throw new InvalidOperationException(@$"Scintilla.NET satellite assemblies not found in {basePath}"); } -#endif } private static string LocateNativeDllDirectory() @@ -79,11 +76,11 @@ private static string LocateNativeDllDirectory() string nugetScintillaNETLocation = designtimeAssembly.Location; string nugetScintillaPackageName = designtimeAssembly.GetName().Name; string rootProjectFolder = Path.GetFullPath(Path.Combine(nugetScintillaNETLocation, @"..\..\..\..\")); - string hostProjectFolder = Path.Combine(rootProjectFolder, @"packages\" + nugetScintillaPackageName + "." + nugetScintillaPackageVersion + @"\build\" + platform); + basePath = Path.Combine(rootProjectFolder, @"packages\" + nugetScintillaPackageName + "." + nugetScintillaPackageVersion + @"\build\" + platform); - if (Directory.Exists(hostProjectFolder)) + if (Directory.Exists(basePath)) { - return hostProjectFolder; + return basePath; } throw new InvalidOperationException(@$"Unable to locate the Scintilla.NET satellite assemblies : directory '{basePath}' not found"); @@ -109,17 +106,12 @@ private static string LocateNativeDllDirectory() // Static module data private static readonly string modulePathScintilla; - - #if SCINTILLA5 private static readonly string modulePathLexilla; - #endif private static IntPtr moduleHandle; private static NativeMethods.Scintilla_DirectFunction directFunction; - #if SCINTILLA5 private static IntPtr lexillaHandle; private static Lexilla lexilla; - #endif // Events private static readonly object scNotificationEventKey = new object(); @@ -194,7 +186,6 @@ private static string LocateNativeDllDirectory() #region Methods - #if SCINTILLA5 /// /// Sets the name of the lexer by its name. /// @@ -202,6 +193,16 @@ private static string LocateNativeDllDirectory() /// true if the lexer was successfully set, false otherwise. private bool SetLexerByName(string lexerName) { + // this is a special case reserved for the container to do the styling, allowing the StyleNeeded notification to be sent + // each time text needs styling for display, note from scintilla docs: + // "If you choose to use the container to do the styling you can use the SCI_SETILEXER command to select NULL, + // in which case the container is sent a SCN_STYLENEEDED notification each time text needs styling for display." + if (lexerName == string.Empty) + { + DirectMessage(NativeMethods.SCI_SETILEXER, IntPtr.Zero, IntPtr.Zero); + return true; + } + var ptr = Lexilla.CreateLexer(lexerName); if (ptr == IntPtr.Zero) @@ -213,7 +214,6 @@ private bool SetLexerByName(string lexerName) return true; } - #endif /// /// Increases the reference count of the specified document by 1. @@ -841,7 +841,7 @@ public void DeleteRange(int position, int length) } /// - /// Retrieves a description of keyword sets supported by the current . + /// Retrieves a description of keyword sets supported by the current lexer />. /// /// A String describing each keyword set separated by line breaks for the current lexer. public unsafe string DescribeKeywordSets() @@ -1078,7 +1078,6 @@ public int GetEndStyled() return Lines.ByteToCharPosition(pos); } - #if SCINTILLA5 private static readonly string scintillaVersion; private static readonly string lexillaVersion; @@ -1091,7 +1090,6 @@ public int GetEndStyled() /// Gets the product version of the Lexilla.dll user by the control. /// public string LexillaVersion => lexillaVersion; - #endif /// /// Gets the Primary style associated with the given Secondary style. @@ -1405,7 +1403,7 @@ private void InitDocument(Eol eolMode = Eol.CrLf, bool useTabs = false, int tabW } /// - /// Default Attributes values do not always get applied to the control. + /// Default Attribute values do not always get applied to the control. /// https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.defaultvalueattribute?view=net-8.0&redirectedfrom=MSDN /// "A DefaultValueAttribute will not cause a member to be automatically initialized with the attribute's value. You must set the initial value in your code." /// This function is created to be called in the OnHandleCreated event so that we can force the default values to be applied. @@ -2557,7 +2555,6 @@ private bool SetRenderer(VisualStyleElement element) return true; } - /// /// Marks the document as unmodified. /// @@ -4207,10 +4204,7 @@ protected override CreateParams CreateParams { // Load the native Scintilla library moduleHandle = NativeMethods.LoadLibrary(modulePathScintilla); - - #if SCINTILLA5 lexillaHandle = NativeMethods.LoadLibrary(modulePathLexilla); - #endif if (moduleHandle == IntPtr.Zero) { @@ -4238,9 +4232,7 @@ protected override CreateParams CreateParams } // Get the native Lexilla.dll methods - #if SCINTILLA5 lexilla = new Lexilla(lexillaHandle); - #endif // Create a managed callback directFunction = (NativeMethods.Scintilla_DirectFunction)Marshal.GetDelegateForFunctionPointer( @@ -4860,102 +4852,15 @@ public string LexerName return; } - #if SCINTILLA5 if (!SetLexerByName(value)) { throw new InvalidOperationException(@$"Lexer with the name of '{value}' was not found."); } - #elif SCINTILLA4 - if (NativeMethods.NameConstantMap.ContainsValue(value)) - { - Lexer = (ScintillaNET.Lexer) NativeMethods.NameConstantMap.First(f => f.Value == value) - .Key; - } - #endif lexerName = value; } } - #if SCINTILLA5 - /// - /// Gets or sets the current lexer. - /// - /// One of the enumeration values. The default is . - /// - /// No lexer name was found with the specified value. - /// - /// This property will get more obsolete as time passes as the Scintilla v.5+ now uses strings to define lexers. The Lexer enumeration is not maintained. - [DefaultValue(Lexer.NotFound)] - [Category("Lexing")] - [Description("The current lexer.")] - [Obsolete("This property will get more obsolete as time passes as the Scintilla v.5+ now uses strings to define lexers. Please use the LexerName property instead.")] - public Lexer Lexer - { - get - { - if (string.IsNullOrWhiteSpace(lexerName)) - { - return Lexer.NotFound; - } - - - if (NativeMethods.NameConstantMap.ContainsValue(lexerName)) - { - return (Lexer) NativeMethods.NameConstantMap.First(f => f.Value == lexerName).Key; - } - - return Lexer.NotFound; - } - set - { - if (value == Lexer.NotFound) - { - return; - } - - var lexer = (int)value; - - if (NativeMethods.NameConstantMap.ContainsKey(lexer)) - { - lexerName = NativeMethods.NameConstantMap.First(f => f.Key == lexer).Value; - - if (string.IsNullOrEmpty(lexerName)) - { - throw new InvalidOperationException(@"No lexer name was found with the specified value."); - } - } - else - { - throw new InvalidOperationException(@"No lexer name was found with the specified value."); - } - - - SetLexerByName(lexerName); - } - } - #elif SCINTILLA4 - /// - /// Gets or sets the current lexer. - /// - /// One of the enumeration values. The default is . - [DefaultValue(Lexer.Container)] - [Category("Lexing")] - [Description("The current lexer.")] - public Lexer Lexer - { - get - { - return (Lexer)DirectMessage(NativeMethods.SCI_GETLEXER); - } - set - { - var lexer = (int)value; - DirectMessage(NativeMethods.SCI_SETLEXER, new IntPtr(lexer)); - } - } - #endif - /// /// Gets or sets the current lexer by name. /// @@ -5522,11 +5427,8 @@ public unsafe string SelectedText get { // NOTE: For some reason the length returned by this API includes the terminating NULL - #if SCINTILLA5 var length = DirectMessage(NativeMethods.SCI_GETSELTEXT).ToInt32(); - #else - var length = DirectMessage(NativeMethods.SCI_GETSELTEXT).ToInt32() - 1; - #endif + if (length <= 0) return string.Empty; @@ -6922,7 +6824,7 @@ public event EventHandler SavePointReached /// Occurs when the control is about to display or print text and requires styling. /// /// - /// This event is only raised when is set to . + /// This event is only raised when LexerName is set to Container />. /// The last position styled correctly can be determined by calling . /// /// diff --git a/Shared/Style.cs b/Shared/Style.cs index 3392b36..e86b2e7 100644 --- a/Shared/Style.cs +++ b/Shared/Style.cs @@ -388,7 +388,7 @@ public Style(Scintilla scintilla, int index) #region Ada /// - /// Style constants for use with the lexer. + /// Style constants for use with the Ada lexer. /// public static class Ada { @@ -458,7 +458,7 @@ public static class Ada #region Asm /// - /// Style constants for use with the lexer. + /// Style constants for use with the Asm lexer. /// public static class Asm { @@ -548,7 +548,7 @@ public static class Asm #region BlitzBasic /// - /// Style constants for use with the lexer. + /// Style constants for use with the BlitzBasic lexer. /// public static class BlitzBasic { @@ -673,7 +673,7 @@ public static class BlitzBasic #region Batch /// - /// Style constants for use with the lexer. + /// Style constants for use with the Batch lexer. /// public static class Batch { @@ -723,7 +723,7 @@ public static class Batch #region Clw /// - /// Style constants for use with the lexer. + /// Style constants for use with the Clw lexer. /// public static class CLW { @@ -818,7 +818,7 @@ public static class CLW #region Cpp /// - /// Style constants for use with the lexer. + /// Style constants for use with the Cpp lexer. /// public static class Cpp { @@ -968,7 +968,7 @@ public static class Cpp #region Css /// - /// Style constants for use with the lexer. + /// Style constants for use with the Css lexer. /// public static class Css { @@ -1098,7 +1098,7 @@ public static class Css #region Fortran /// - /// Style constants for use with the lexer. + /// Style constants for use with the Fortran lexer. /// public static class Fortran { @@ -1183,7 +1183,7 @@ public static class Fortran #region FreeBasic /// - /// Style constants for use with the lexer. + /// Style constants for use with the FreeBasic lexer. /// public static class FreeBasic { @@ -1308,7 +1308,7 @@ public static class FreeBasic #region Html /// - /// Style constants for use with the lexer. + /// Style constants for use with the Html lexer. /// public static class Html { @@ -1423,7 +1423,7 @@ public static class Html #region JavaScript /// - /// Embedded JavaScript style constants for use with the lexer. + /// Embedded JavaScript style constants for use with the JavaScript lexer. /// public static class JavaScript { @@ -1498,7 +1498,7 @@ public static class JavaScript #region Json /// - /// Style constants for use with the lexer. + /// Style constants for use with the Json lexer. /// public static class Json { @@ -1578,7 +1578,7 @@ public static class Json #region Lisp /// - /// Style constants for use with the lexer. + /// Style constants for use with the Lisp lexer. /// public static class Lisp { @@ -1648,7 +1648,7 @@ public static class Lisp #region Lua /// - /// Style constants for use with the lexer. + /// Style constants for use with the Lua lexer. /// public static class Lua { @@ -1763,7 +1763,7 @@ public static class Lua #region Matlab /// - /// Style constants for use with the lexer. + /// Style constants for use with the Matlab lexer. /// public static class Matlab { @@ -1818,7 +1818,7 @@ public static class Matlab #region Pascal /// - /// Style constants for use with the lexer. + /// Style constants for use with the Pascal lexer. /// public static class Pascal { @@ -1903,7 +1903,7 @@ public static class Pascal #region Perl /// - /// Style constants for use with the lexer. + /// Style constants for use with the Perl lexer. /// public static class Perl { @@ -2135,7 +2135,7 @@ public static class Perl #region PhpScript /// - /// Style constants for use with the lexer. + /// Style constants for use with the PhpScript lexer. /// public static class PhpScript { @@ -2200,7 +2200,7 @@ public static class PhpScript #region PowerShell /// - /// Style constants for use with the lexer. + /// Style constants for use with the PowerShell lexer. /// public static class PowerShell { @@ -2295,7 +2295,7 @@ public static class PowerShell #region Properties /// - /// Style constants for use with the lexer. + /// Style constants for use with the Properties lexer. /// public static class Properties { @@ -2335,7 +2335,7 @@ public static class Properties #region PureBasic /// - /// Style constants for use with the lexer. + /// Style constants for use with the PureBasic lexer. /// public static class PureBasic { @@ -2460,7 +2460,7 @@ public static class PureBasic #region Python /// - /// Style constants for use with the lexer. + /// Style constants for use with the Python lexer. /// public static class Python { @@ -2550,7 +2550,7 @@ public static class Python #region Ruby /// - /// Style constants for use with the lexer. + /// Style constants for use with the Ruby lexer. /// public static class Ruby { @@ -2727,7 +2727,7 @@ public static class Ruby #region Smalltalk /// - /// Style constants for use with the lexer. + /// Style constants for use with the Smalltalk lexer. /// public static class Smalltalk { @@ -2822,7 +2822,7 @@ public static class Smalltalk #region Sql /// - /// Style constants for use with the lexer. + /// Style constants for use with the Sql lexer. /// public static class Sql { @@ -2947,7 +2947,7 @@ public static class Sql #region Markdown /// - /// Style constants for use with the lexer. + /// Style constants for use with the Markdown lexer. /// public static class Markdown { @@ -3067,7 +3067,7 @@ public static class Markdown #region R /// - /// Style constants for use with the lexer. + /// Style constants for use with the R lexer. /// public static class R { @@ -3137,7 +3137,7 @@ public static class R #region Vb /// - /// Style constants for use with the lexer. + /// Style constants for use with the Vb lexer. /// public static class Vb { @@ -3262,7 +3262,7 @@ public static class Vb #region VbScript /// - /// Style constants for use with the lexer. + /// Style constants for use with the VbScript lexer. /// public static class VbScript { @@ -3387,7 +3387,7 @@ public static class VbScript #region Verilog /// - /// Style constants for use with the lexer. + /// Style constants for use with the Verilog lexer. /// public static class Verilog { @@ -3492,7 +3492,7 @@ public static class Verilog #region Xml /// - /// Style constants for use with the lexer. + /// Style constants for use with the Xml lexer. /// public static class Xml {