From 6055543fabdb681d0772e8fe0e442cedbc63d603 Mon Sep 17 00:00:00 2001 From: Allister Beharry Date: Fri, 1 Dec 2023 12:38:07 -0400 Subject: [PATCH] Delete old Solidity2 project. Make sure to call sendRequest and sendNotificatin in SolidityLanguageClient middle layer. --- src/Stratis.DevEx.sln | 21 - src/Stratis.VS.Solidity2/CustomCommand.cs | 105 -- .../CustomCommandPackage.cs | 76 - .../CustomCommandPackage.vsct | 94 - .../Grammars/Solidity.tmLanguage | 1531 ----------------- src/Stratis.VS.Solidity2/Key.snk | Bin 596 -> 0 bytes .../Properties/AssemblyInfo.cs | 33 - .../Resources/CustomCommand.png | Bin 1172 -> 0 bytes .../Resources/CustomCommandPackage.ico | Bin 428446 -> 0 bytes .../Resources/StratisLogo200x200.png | Bin 45290 -> 0 bytes .../Resources/StratisLogo64x64.png | Bin 5826 -> 0 bytes .../SolidityContentTypeDefinition.cs | 22 - .../SolidityLanguageClient.cs | 196 --- .../SolidityLanguageSettings.json | 3 - .../SolidityLanguageSettings.pkgdef | 5 - .../Stratis.VS.Solidity2.csproj | 137 -- .../Stratis.VS.Solidity2Package.cs | 53 - .../StratisLogo200x200.png | Bin 45290 -> 0 bytes src/Stratis.VS.Solidity2/StratisLogo64x64.png | Bin 5826 -> 0 bytes src/Stratis.VS.Solidity2/VSPackage.resx | 140 -- .../source.extension.vsixmanifest | 27 - .../SolidityLanguageClient.cs | 7 +- .../SolidityLanguageSettings.json | 5 +- .../source.extension.vsixmanifest | 2 +- 24 files changed, 5 insertions(+), 2452 deletions(-) delete mode 100644 src/Stratis.VS.Solidity2/CustomCommand.cs delete mode 100644 src/Stratis.VS.Solidity2/CustomCommandPackage.cs delete mode 100644 src/Stratis.VS.Solidity2/CustomCommandPackage.vsct delete mode 100644 src/Stratis.VS.Solidity2/Grammars/Solidity.tmLanguage delete mode 100644 src/Stratis.VS.Solidity2/Key.snk delete mode 100644 src/Stratis.VS.Solidity2/Properties/AssemblyInfo.cs delete mode 100644 src/Stratis.VS.Solidity2/Resources/CustomCommand.png delete mode 100644 src/Stratis.VS.Solidity2/Resources/CustomCommandPackage.ico delete mode 100644 src/Stratis.VS.Solidity2/Resources/StratisLogo200x200.png delete mode 100644 src/Stratis.VS.Solidity2/Resources/StratisLogo64x64.png delete mode 100644 src/Stratis.VS.Solidity2/SolidityContentTypeDefinition.cs delete mode 100644 src/Stratis.VS.Solidity2/SolidityLanguageClient.cs delete mode 100644 src/Stratis.VS.Solidity2/SolidityLanguageSettings.json delete mode 100644 src/Stratis.VS.Solidity2/SolidityLanguageSettings.pkgdef delete mode 100644 src/Stratis.VS.Solidity2/Stratis.VS.Solidity2.csproj delete mode 100644 src/Stratis.VS.Solidity2/Stratis.VS.Solidity2Package.cs delete mode 100644 src/Stratis.VS.Solidity2/StratisLogo200x200.png delete mode 100644 src/Stratis.VS.Solidity2/StratisLogo64x64.png delete mode 100644 src/Stratis.VS.Solidity2/VSPackage.resx delete mode 100644 src/Stratis.VS.Solidity2/source.extension.vsixmanifest diff --git a/src/Stratis.DevEx.sln b/src/Stratis.DevEx.sln index 738ee18..cb23573 100644 --- a/src/Stratis.DevEx.sln +++ b/src/Stratis.DevEx.sln @@ -98,8 +98,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cobra.Api", "..\ext\Cobra.A EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Stratis.DevEx.TestChain", "Stratis.DevEx.TestChain\Stratis.DevEx.TestChain.csproj", "{F18BA290-AFB9-4EEF-8281-30F3F32A0265}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Stratis.VS.Solidity2", "Stratis.VS.Solidity2\Stratis.VS.Solidity2.csproj", "{6546214D-9FE1-4244-BC3E-2D7CA5A65194}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Stratis.VS.StratisEVM", "Stratis.VS.StratisEVM\Stratis.VS.StratisEVM.csproj", "{99ED2062-8DD2-4969-972C-C9DC81EBF869}" EndProject Global @@ -637,24 +635,6 @@ Global {F18BA290-AFB9-4EEF-8281-30F3F32A0265}.Sources|arm64.Build.0 = Debug|Any CPU {F18BA290-AFB9-4EEF-8281-30F3F32A0265}.Sources|x86.ActiveCfg = Debug|Any CPU {F18BA290-AFB9-4EEF-8281-30F3F32A0265}.Sources|x86.Build.0 = Debug|Any CPU - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Debug|arm64.ActiveCfg = Debug|arm64 - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Debug|arm64.Build.0 = Debug|arm64 - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Debug|x86.ActiveCfg = Debug|x86 - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Debug|x86.Build.0 = Debug|x86 - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Release|Any CPU.Build.0 = Release|Any CPU - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Release|arm64.ActiveCfg = Release|arm64 - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Release|arm64.Build.0 = Release|arm64 - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Release|x86.ActiveCfg = Release|x86 - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Release|x86.Build.0 = Release|x86 - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Sources|Any CPU.ActiveCfg = Debug|Any CPU - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Sources|Any CPU.Build.0 = Debug|Any CPU - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Sources|arm64.ActiveCfg = Debug|arm64 - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Sources|arm64.Build.0 = Debug|arm64 - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Sources|x86.ActiveCfg = Debug|x86 - {6546214D-9FE1-4244-BC3E-2D7CA5A65194}.Sources|x86.Build.0 = Debug|x86 {99ED2062-8DD2-4969-972C-C9DC81EBF869}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {99ED2062-8DD2-4969-972C-C9DC81EBF869}.Debug|Any CPU.Build.0 = Debug|Any CPU {99ED2062-8DD2-4969-972C-C9DC81EBF869}.Debug|arm64.ActiveCfg = Debug|arm64 @@ -710,7 +690,6 @@ Global {4546334C-3D5E-42DB-A017-22D3E931633F} = {A0717F4C-8EED-4659-B72F-50DB73E1F64E} {75785EBD-14DC-463A-AD50-ED046F39A5AC} = {A0717F4C-8EED-4659-B72F-50DB73E1F64E} {F18BA290-AFB9-4EEF-8281-30F3F32A0265} = {8DC77034-0F3C-40E6-A352-B157BCB85462} - {6546214D-9FE1-4244-BC3E-2D7CA5A65194} = {3244104A-4F62-488E-8DA9-B1FEB2E367E7} {99ED2062-8DD2-4969-972C-C9DC81EBF869} = {3244104A-4F62-488E-8DA9-B1FEB2E367E7} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution diff --git a/src/Stratis.VS.Solidity2/CustomCommand.cs b/src/Stratis.VS.Solidity2/CustomCommand.cs deleted file mode 100644 index fdde0b9..0000000 --- a/src/Stratis.VS.Solidity2/CustomCommand.cs +++ /dev/null @@ -1,105 +0,0 @@ -using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Shell.Interop; -using System; -using System.ComponentModel.Design; -using System.Globalization; -using System.Threading; -using System.Threading.Tasks; -using Task = System.Threading.Tasks.Task; - -namespace Stratis.VS.Solidity2 -{ - /// - /// Command handler - /// - internal sealed class CustomCommand - { - /// - /// Command ID. - /// - public const int CommandId = 0x0100; - - /// - /// Command menu group (command set GUID). - /// - public static readonly Guid CommandSet = new Guid("7446631a-8d94-4937-b0db-6305e29d27c5"); - - /// - /// VS Package that provides this command, not null. - /// - private readonly AsyncPackage package; - - /// - /// Initializes a new instance of the class. - /// Adds our command handlers for menu (commands must exist in the command table file) - /// - /// Owner package, not null. - /// Command service to add command to, not null. - private CustomCommand(AsyncPackage package, OleMenuCommandService commandService) - { - this.package = package ?? throw new ArgumentNullException(nameof(package)); - commandService = commandService ?? throw new ArgumentNullException(nameof(commandService)); - - var menuCommandID = new CommandID(CommandSet, CommandId); - var menuItem = new MenuCommand(this.Execute, menuCommandID); - commandService.AddCommand(menuItem); - } - - /// - /// Gets the instance of the command. - /// - public static CustomCommand Instance - { - get; - private set; - } - - /// - /// Gets the service provider from the owner package. - /// - private Microsoft.VisualStudio.Shell.IAsyncServiceProvider ServiceProvider - { - get - { - return this.package; - } - } - - /// - /// Initializes the singleton instance of the command. - /// - /// Owner package, not null. - public static async Task InitializeAsync(AsyncPackage package) - { - // Switch to the main thread - the call to AddCommand in CustomCommand's constructor requires - // the UI thread. - await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(package.DisposalToken); - - OleMenuCommandService commandService = await package.GetServiceAsync(typeof(IMenuCommandService)) as OleMenuCommandService; - Instance = new CustomCommand(package, commandService); - } - - /// - /// This function is the callback used to execute the command when the menu item is clicked. - /// See the constructor to see how the menu item is associated with this function using - /// OleMenuCommandService service and MenuCommand class. - /// - /// Event sender. - /// Event args. - private void Execute(object sender, EventArgs e) - { - ThreadHelper.ThrowIfNotOnUIThread(); - string message = string.Format(CultureInfo.CurrentCulture, "Inside {0}.MenuItemCallback()", this.GetType().FullName); - string title = "CustomCommand"; - - // Show a message box to prove we were here - VsShellUtilities.ShowMessageBox( - this.package, - message, - title, - OLEMSGICON.OLEMSGICON_INFO, - OLEMSGBUTTON.OLEMSGBUTTON_OK, - OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST); - } - } -} diff --git a/src/Stratis.VS.Solidity2/CustomCommandPackage.cs b/src/Stratis.VS.Solidity2/CustomCommandPackage.cs deleted file mode 100644 index 1ce0460..0000000 --- a/src/Stratis.VS.Solidity2/CustomCommandPackage.cs +++ /dev/null @@ -1,76 +0,0 @@ -using Microsoft.VisualStudio; -using Microsoft.VisualStudio.OLE.Interop; -using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Shell.Interop; -using Microsoft.Win32; -using System; -using System.ComponentModel.Design; -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using System.Globalization; -using System.Runtime.InteropServices; -using System.Threading; -using System.Threading.Tasks; -using Task = System.Threading.Tasks.Task; - -namespace Stratis.VS.Solidity2 -{ - /// - /// This is the class that implements the package exposed by this assembly. - /// - /// - /// - /// The minimum requirement for a class to be considered a valid package for Visual Studio - /// is to implement the IVsPackage interface and register itself with the shell. - /// This package uses the helper classes defined inside the Managed Package Framework (MPF) - /// to do it: it derives from the Package class that provides the implementation of the - /// IVsPackage interface and uses the registration attributes defined in the framework to - /// register itself and its components with the shell. These attributes tell the pkgdef creation - /// utility what data to put into .pkgdef file. - /// - /// - /// To get loaded into VS, the package must be referred by <Asset Type="Microsoft.VisualStudio.VsPackage" ...> in .vsixmanifest file. - /// - /// - [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)] - [ProvideMenuResource("Menus.ctmenu", 1)] - [Guid(CustomCommandPackage.PackageGuidString)] - [SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1650:ElementDocumentationMustBeSpelledCorrectly", Justification = "pkgdef, VS and vsixmanifest are valid VS terms")] - public sealed class CustomCommandPackage : AsyncPackage - { - /// - /// CustomCommandPackage GUID string. - /// - public const string PackageGuidString = "e0158e3d-7943-457e-a67d-c840b61533bd"; - - /// - /// Initializes a new instance of the class. - /// - public CustomCommandPackage() - { - // Inside this method you can place any initialization code that does not require - // any Visual Studio service because at this point the package object is created but - // not sited yet inside Visual Studio environment. The place to do all the other - // initialization is the Initialize method. - } - - #region Package Members - - /// - /// Initialization of the package; this method is called right after the package is sited, so this is the place - /// where you can put all the initialization code that rely on services provided by VisualStudio. - /// - /// A cancellation token to monitor for initialization cancellation, which can occur when VS is shutting down. - /// A provider for progress updates. - /// A task representing the async work of package initialization, or an already completed task if there is none. Do not return null from this method. - protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress) - { - // When initialized asynchronously, the current thread may be a background thread at this point. - // Do any initialization that requires the UI thread after switching to the UI thread. - await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); - await CustomCommand.InitializeAsync(this); - } - - #endregion - } -} diff --git a/src/Stratis.VS.Solidity2/CustomCommandPackage.vsct b/src/Stratis.VS.Solidity2/CustomCommandPackage.vsct deleted file mode 100644 index 9f862a0..0000000 --- a/src/Stratis.VS.Solidity2/CustomCommandPackage.vsct +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Stratis.VS.Solidity2/Grammars/Solidity.tmLanguage b/src/Stratis.VS.Solidity2/Grammars/Solidity.tmLanguage deleted file mode 100644 index 8015688..0000000 --- a/src/Stratis.VS.Solidity2/Grammars/Solidity.tmLanguage +++ /dev/null @@ -1,1531 +0,0 @@ - - - - - fileTypes - - sol - - firstLineMatch - ^#!/.*\b(pragma solidity \^[0..9]+\.[0..9]\.[0..9])$\n? - keyEquivalent - ^~S - name - Solidity - patterns - - - include - #core - - - repository - - brackets - - patterns - - - include - #round-brackets - - - include - #square-brackets - - - include - #curly-brackets - - - - comments - - patterns - - - include - #special-comments-conditional-compilation - - - begin - /\*\*(?!/) - captures - - 0 - - name - punctuation.definition.comment.sol - - - end - \*/ - name - comment.block.documentation.sol - - - begin - /\* - captures - - 0 - - name - punctuation.definition.comment.sol - - - end - \*/ - name - comment.block.sol - - - captures - - 1 - - name - punctuation.definition.comment.sol - - - match - (//).*$\n? - name - comment.line.double-slash.sol - - - - core - - patterns - - - include - #literal-function-labels - - - include - #literal-labels - - - include - #literal-keywords - - - include - #literal-for - - - include - #expression - - - include - #literal-punctuation - - - - curly-brackets - - patterns - - - begin - \{ - beginCaptures - - 0 - - name - meta.brace.curly.sol - - - end - \} - endCaptures - - 0 - - name - meta.brace.curly.sol - - - name - meta.group.braces.curly - patterns - - - include - $self - - - - - - expression - - patterns - - - include - #support - - - include - #literal-function - - - include - #literal-regexp - - - include - #literal-number - - - include - #literal-string - - - include - #literal-language-constant - - - include - #literal-language-variable - - - include - #literal-contract - - - include - #literal-library - - - include - #literal-function-call - - - include - #comments - - - include - #brackets - - - include - #literal-operators - - - include - #literal-variable - - - - function-declaration-parameters - - patterns - - - begin - \( - beginCaptures - - 0 - - name - punctuation.definition.parameters.begin.sol - - - end - \) - endCaptures - - 0 - - name - punctuation.definition.parameters.end.sol - - - patterns - - - match - [_$a-zA-Z][$\w]* - name - variable.parameter.function.sol - - - match - , - name - punctuation.separator.parameter.function.sol - - - include - #comments - - - - - - literal-contract - - patterns - - - begin - (?x) (?<!\.)\b(contract|interface) \s+((?!\b(is)\b)[A-Z][$\w]*)? - beginCaptures - - 1 - - name - storage.type.contract.sol - - 2 - - name - entity.name.contract.sol - - - end - } - endCaptures - - 0 - - name - meta.brace.curly.sol - - - - - - literal-library - - patterns - - - begin - (?x) (?<!\.)\b(library) \s+([A-Z][$\w]*)? - beginCaptures - - 1 - - name - storage.type.library.sol - - 2 - - name - entity.name.library.sol - - - end - } - endCaptures - - 0 - - name - meta.brace.curly.sol - - - - - - literal-for - - patterns - - - begin - (?<!\.)\b(for)\b - beginCaptures - - 1 - - name - keyword.control.loop.sol - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.sol - - - name - meta.for.sol - patterns - - - begin - \( - beginCaptures - - 0 - - name - meta.brace.round.sol - - - end - (?=\)) - patterns - - - include - #literal-keyword-storage - - - include - #expression - - - include - #literal-punctuation - - - - - - - - literal-function - - patterns - - - begin - - (?x) \s*(function)(?:\s*(\*)|(?=\s|[(])) - \s*([_$a-zA-Z][$\w]*)?\s* - - beginCaptures - - 1 - - name - storage.type.sol - - 2 - - name - storage.type.function.sol - - 3 - - name - keyword.generator.asterisk.sol - - 4 - - name - entity.name.function.sol - - - end - (?<=\)) - name - meta.function.sol - patterns - - - include - #function-declaration-parameters - - - - - begin - - (?x) (\b[_$a-zA-Z][$\w]*) \s*= - \s*(function|event|modifier)(?:\s*(\*)|(?=\s|[(])) - \s*([_$a-zA-Z][$\w]*)?\s* - - beginCaptures - - 1 - - name - entity.name.function.sol - - 2 - - name - storage.type.sol - - 3 - - name - storage.type.function.sol - - 4 - - name - keyword.generator.asterisk.sol - - 5 - - name - entity.name.function.sol - - - end - (?<=\)) - name - meta.function.sol - patterns - - - include - #function-declaration-parameters - - - - - begin - - (?x) (\b_?[A-Z][$\w]*)? - (\.)([_$a-zA-Z][$\w]*) \s*= - \s*(function)(?:\s*(\*)|(?=\s|[(])) - \s*([_$a-zA-Z][$\w]*)?\s* - - beginCaptures - - 1 - - name - keyword.operator.accessor.sol - - 2 - - name - variable.language.prototype.sol - - 3 - - name - keyword.operator.accessor.sol - - 4 - - name - entity.name.function.sol - - 5 - - name - storage.type.sol - - 6 - - name - storage.type.function.sol - - 7 - - name - keyword.generator.asterisk.sol - - 8 - - name - entity.name.function.sol - - - end - (?<=\)) - name - meta.prototype.function.sol - patterns - - - include - #function-declaration-parameters - - - - - begin - - (?x) (\b_?[A-Z][$\w]*)? (\.)([_$a-zA-Z][$\w]*) \s*= - \s*(function|event|modifier)(?:\s*(\*)|(?=\s|[(])) - \s*([_$a-zA-Z][$\w]*)*\s* - - beginCaptures - - 1 - - name - keyword.operator.accessor.sol - - 2 - - name - entity.name.function.sol - - 3 - - name - storage.type.sol - - 4 - - name - storage.type.function.sol - - 5 - - name - keyword.generator.asterisk.sol - - 6 - - name - entity.name.function.sol - - - end - (?<=\)) - name - meta.function.static.sol - patterns - - - include - #function-declaration-parameters - - - - - - literal-function-call - - patterns - - - captures - - 1 - - name - entity.name.function.sol - - 2 - - name - meta.group.braces.round.function.arguments.sol - - - match - (?x) ([_$a-zA-Z][$\w]*)\s* (\(\s*\)) - name - meta.function-call.without-arguments.sol - - - captures - - 1 - - name - entity.name.function.sol - - - match - (?x) ([_$a-zA-Z][$\w]*)\s* (?=\() - name - meta.function-call.with-arguments.sol - - - - literal-function-labels - - patterns - - - begin - - (?x) \b([_$a-zA-Z][$\w]*) \s*(:) - \s*(function|event|modifier)(?:\s*(\*)|(?=\s|[(])) - \s*([_$a-zA-Z][$\w]*)*\s* - - beginCaptures - - 1 - - name - entity.name.function.sol - - 2 - - name - punctuation.separator.key-value.sol - - 3 - - name - storage.type.sol - - 4 - - name - storage.type.function.sol - - 5 - - name - keyword.generator.asterisk.sol - - 6 - - name - entity.name.function.sol - - - end - (?<=\)) - patterns - - - include - #function-declaration-parameters - - - - - begin - - (?x) (?: - ((')((?:[^']|\\')*)('))| - ((")((?:[^"]|\\")*)(")) ) \s*(:) - \s*(function|event|modifier)(?:\s*(\*)|(?=\s|[(])) - \s*([_$a-zA-Z][$\w]*)*\s* - - beginCaptures - - 1 - - name - string.quoted.single.sol - - 10 - - name - storage.type.sol - - 11 - - name - storage.type.function.sol - - 12 - - name - keyword.generator.asterisk.sol - - 13 - - name - entity.name.function.sol - - 2 - - name - punctuation.definition.string.begin.sol - - 3 - - name - entity.name.function.sol - - 4 - - name - punctuation.definition.string.end.sol - - 5 - - name - string.quoted.double.sol - - 6 - - name - punctuation.definition.string.begin.sol - - 7 - - name - entity.name.function.sol - - 8 - - name - punctuation.definition.string.end.sol - - 9 - - name - punctuation.separator.key-value.sol - - - end - (?<=\)) - patterns - - - include - #function-declaration-parameters - - - - - - literal-keyword-storage - - patterns - - - match - (?<!\.)\b(constant)\b - name - storage.type.sol - - - - literal-keywords - - patterns - - - include - #literal-keyword-storage - - - match - (?<!\.)\b(return)\b - name - keyword.control.flow.sol - - - match - (?<!\.)\b(if|else)\b - name - keyword.control.conditional.sol - - - match - (?<!\.)\b(require|assert)\b - name - keyword.require-assert.sol - - - - literal-labels - - patterns - - - begin - - (?x) (?<!\?)(?<!\?\s)(?=( - ((')((?:[^']|\\')*)('))| - ((")((?:[^"]|\\")*)(")) )\s*:) - - end - : - endCaptures - - 0 - - name - punctuation.separator.key-value.sol - - - patterns - - - include - #literal-string - - - - - captures - - 1 - - name - string.unquoted.label.sol - - 2 - - name - punctuation.separator.key-value.sol - - - match - (?<!\.|\?|\?\s)([_$a-zA-Z][$\w]*)\s*(:) - name - constant.other.object.key.sol - - - - literal-language-constant - - patterns - - - match - (?<!\.)\btrue\b - name - constant.language.boolean.true.sol - - - match - (?<!\.)\bfalse\b - name - constant.language.boolean.false.sol - - - - literal-language-variable - - patterns - - - match - (?<!(?<!\.\.)\.)\b(arguments)\b - name - variable.language.arguments.sol - - - match - (?<!(?<!\.\.)\.)\b(super)\b - name - variable.language.super.sol - - - match - (?<!(?<!\.\.)\.)\b(this)\b - name - variable.language.this.sol - - - - literal-number - - patterns - - - match - (?i)(?:\B[-+]|\b)0x[0-9a-f]*\.(\B|\b[0-9]+) - name - invalid.illegal.numeric.hex.sol - - - match - (?:\B[-+]|\b)0[0-9]+\.(\B|\b[0-9]+) - name - invalid.illegal.numeric.octal.sol - - - match - - (?xi) (?:\B[-+])? (?: \b0b[0-1]*| # binary - \b0o[0-7]*| # octal \b0x[0-9a-f]*| # hex ( - \B\.[0-9]+| # e.g. .999 \b[0-9]+(\.[0-9]*)? # e.g. - 999.999, 999. or 999 )(e[-+]?[0-9]+)? # e.g. e+123, - E-123 ) - - name - constant.numeric.sol - - - - literal-operators - - patterns - - - match - (?<!\.)\b(delete|new)\b - name - keyword.operator.sol - - - match - - (?x) !(?!=)| # logical-not right-to-left right - && | # logical-and left-to-right both \|\| | - # logical-or left-to-right both - - name - keyword.operator.logical.sol - - - match - (?x) =(?!=)| # assignment right-to-left both - name - keyword.operator.assignment.sol - - - match - - (?x) %= | # assignment right-to-left both &= | # - assignment right-to-left both \*= | # assignment - right-to-left both \+= | # assignment right-to-left - both -= | # assignment right-to-left both /= | # - assignment right-to-left both \^= | # assignment - right-to-left both \|= | # assignment right-to-left - both <<= | # assignment right-to-left both - >>= | # assignment right-to-left both - >>>= | # assignment right-to-left both - - name - keyword.operator.assignment.augmented.sol - - - match - - (?x) ~ | # bitwise-not right-to-left right << - | # bitwise-shift left-to-right both >>> | - # bitwise-shift left-to-right both >> | # - bitwise-shift left-to-right both & | # - bitwise-and left-to-right both \^ | # bitwise-xor - left-to-right both \| # bitwise-or left-to-right - both - - name - keyword.operator.bitwise.sol - - - match - - (?x) <= | # relational left-to-right both >= | - # relational left-to-right both < | # relational - left-to-right both > # relational left-to-right - both - - name - keyword.operator.relational.sol - - - match - - (?x) == | # equality left-to-right both != # equality left-to-right both - - name - keyword.operator.comparison.sol - - - match - - (?x) / | # division left-to-right both - % | # modulus left-to-right both - \* | # multiplication left-to-right both - \+ | # addition left-to-right both - - # subtraction left-to-right both - - name - keyword.operator.arithmetic.sol - - - match - \?|: - name - keyword.operator.ternary.sol - - - match - (?<!\.)\.\.\. - name - keyword.operator.spread.sol - - - match - \. - name - keyword.operator.accessor.sol - - - - literal-prototype - - patterns - - - captures - - 1 - - name - entity.name.class.sol - - 2 - - name - keyword.operator.accessor.sol - - 3 - - name - variable.language.prototype.sol - - - match - ([_$a-zA-Z][$\w]*)(\.)(prototype)\b - name - meta.prototype.access.sol - - - captures - - 1 - - name - entity.name.class.sol - - 2 - - name - keyword.operator.accessor.sol - - 3 - - name - variable.language.prototype.sol - - - match - ([_$a-zA-Z][$\w]*)(\.)(prototype)\s*=\s* - name - meta.prototype.declaration.sol - - - - literal-punctuation - - patterns - - - match - \; - name - punctuation.terminator.statement.sol - - - match - , - name - meta.delimiter.comma.sol - - - - literal-regexp - - patterns - - - begin - - (?x) (?<= - \.|\(|,|{|}|\[|;|,|<|>|<=|>=|==|!=|\+|-|\*|%|\+\+|--|<<|>>|>>>|&|\||\^|!|~|&&|\|\||\?|:|=|\+=|-=|\*=|%=|<<=|>>=|>>>=|&=|\|=|\^=|/|/=| \Wnew|\Wdelete|\Wvoid|\Wreturn| ^new|^delete|^void|^return|^ )\s* (/) (?!/|\*|$) - - beginCaptures - - 1 - - name - punctuation.definition.string.begin.sol - - - end - (/)([gimy]*) - endCaptures - - 1 - - name - punctuation.definition.string.end.sol - - 2 - - name - keyword.other.sol - - - name - string.regexp.sol - patterns - - - include - source.regexp.sol - - - - - - literal-string - - patterns - - - begin - ' - beginCaptures - - 0 - - name - punctuation.definition.string.begin.sol - - - end - (')|(\n) - endCaptures - - 1 - - name - punctuation.definition.string.end.sol - - 2 - - name - invalid.illegal.newline.sol - - - name - string.quoted.single.sol - patterns - - - include - #string-content - - - - - begin - " - beginCaptures - - 0 - - name - punctuation.definition.string.begin.sol - - - end - (")|(\n) - endCaptures - - 1 - - name - punctuation.definition.string.end.sol - - 2 - - name - invalid.illegal.newline.sol - - - name - string.quoted.double.sol - patterns - - - include - #string-content - - - - - - literal-variable - - patterns - - - match - [A-Z][_$\dA-Z]*\b - name - variable.other.constant.sol - - - captures - - 1 - - name - punctuation.dollar.sol - - - match - (\$)[$\w]+ - name - variable.other.dollar.sol - - - captures - - 1 - - name - variable.other.class.sol - - 2 - - name - keyword.operator.accessor.sol - - 3 - - name - variable.other.property.static.sol - - - match - (?x) \b([A-Z][$\w]*)\s*(\.) ([_$a-zA-Z][$\w]*) - name - meta.property.class.sol - - - captures - - 1 - - name - variable.other.object.sol - - - match - (?<!\.)[_$a-zA-Z][$\w]*\s*(?=[\[\.]) - name - variable.other.object.sol - - - captures - - 2 - - name - variable.other.property.sol - - - match - (?<=\.)\s*[_$a-zA-Z][$\w]* - name - meta.property.object.sol - - - match - [_$a-zA-Z][$\w]* - name - variable.other.readwrite.sol - - - - round-brackets - - patterns - - - begin - \( - beginCaptures - - 0 - - name - meta.brace.round.sol - - - end - \) - endCaptures - - 0 - - name - meta.brace.round.sol - - - name - meta.group.braces.round - patterns - - - include - #expression - - - - - - special-comments-conditional-compilation - - patterns - - - begin - /\*(?=@) - captures - - 0 - - name - punctuation.definition.comment.sol - - - end - \*/ - endCaptures - - 1 - - name - keyword.control.conditional.sol - - 2 - - name - punctuation.definition.keyword.sol - - - name - comment.block.conditional.sol - patterns - - - match - /\* - name - punctuation.definition.comment.sol - - - include - $self - - - - - captures - - 1 - - name - punctuation.definition.keyword.sol - - - match - (@)(if|elif|else|end|ifdef|endif|cc_on|set)\b - name - keyword.control.conditional.sol - - - captures - - 1 - - name - punctuation.definition.variable.sol - - - - - - square-brackets - - patterns - - - begin - \[ - beginCaptures - - 0 - - name - meta.brace.square.sol - - - end - \] - endCaptures - - 0 - - name - meta.brace.square.sol - - - name - meta.group.braces.square - patterns - - - include - #expression - - - - - - string-content - - patterns - - - match - \\\s*\n - name - constant.character.escape.newline.sol - - - match - \\(x[\da-fA-F]{2}|u[\da-fA-F]{4}|.) - name - constant.character.escape.sol - - - - support - - patterns - - - match - \.(pop|push)\b - name - support.function.mutator.sol - - - begin - {{ - end - }} - name - meta.tag.mustache.sol - - - - - scopeName - source.sol - uuid - 3F50A19F-DEE2-4C44-8F60-C01CEE8CEA68 - - diff --git a/src/Stratis.VS.Solidity2/Key.snk b/src/Stratis.VS.Solidity2/Key.snk deleted file mode 100644 index e722fd4c78fc05cc36068426ef1853d5da12fb2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 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

N3mPu2mM3; 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�AHW&r`0M8`gvhscwJ6?^oiV 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 M07*qoM6N<$f@rL56aWAK diff --git a/src/Stratis.VS.Solidity2/SolidityContentTypeDefinition.cs b/src/Stratis.VS.Solidity2/SolidityContentTypeDefinition.cs deleted file mode 100644 index 27df3ce..0000000 --- a/src/Stratis.VS.Solidity2/SolidityContentTypeDefinition.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.VisualStudio.LanguageServer.Client; -using Microsoft.VisualStudio.Utilities; -using System.ComponentModel.Composition; - -namespace Stratis.VS -{ -#pragma warning disable 649 - public class SolidityContentDefinition - { - [Export] - [Name("solidity")] - [BaseDefinition(CodeRemoteContentDefinition.CodeRemoteContentTypeName)] - internal static ContentTypeDefinition SolidityContentTypeDefinition; - - - [Export] - [FileExtension(".sol")] - [ContentType("solidity")] - internal static FileExtensionToContentTypeDefinition SolidityFileExtensionDefinition; - } -#pragma warning restore 649 -} diff --git a/src/Stratis.VS.Solidity2/SolidityLanguageClient.cs b/src/Stratis.VS.Solidity2/SolidityLanguageClient.cs deleted file mode 100644 index ff155a6..0000000 --- a/src/Stratis.VS.Solidity2/SolidityLanguageClient.cs +++ /dev/null @@ -1,196 +0,0 @@ -using Microsoft.VisualStudio.LanguageServer.Client; -using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Utilities; -using StreamJsonRpc; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.IO.Pipes; -using System.Reflection; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.VisualStudio.Threading; -using Newtonsoft.Json.Linq; -using Task = System.Threading.Tasks.Task; -using Microsoft.VisualStudio.LanguageServer.Protocol; -using System.ComponentModel.Composition; - - -using Stratis.DevEx; -using EnvDTE; -using System.Configuration; -using System.IO.Pipelines; - -namespace Stratis.VS -{ - [ContentType("solidity")] - [Export(typeof(ILanguageClient))] - [RunOnContext(RunningContext.RunOnHost)] - public class SolidityLanguageClient : Runtime, ILanguageClient, ILanguageClientCustomMessage2 - { - - static SolidityLanguageClient() - { - Initialize("Stratis.VS.Solidity", "LanguageClient"); - } - public SolidityLanguageClient() - { - Instance = this; - this.MiddleLayer = null;// new SolidityLanguageClientMiddleLayer(); - } - - internal static SolidityLanguageClient Instance - { - get; - set; - } - - internal System.Diagnostics.Process ServerProcess { get; set; } - - internal JsonRpc Rpc - { - get; - set; - } - - public event AsyncEventHandler StartAsync; - public event AsyncEventHandler StopAsync; - - public string Name => "Solidity Language Extension"; - - public IEnumerable ConfigurationSections - { - get - { - yield return "solidity"; - } - } - - public object InitializationOptions => null; - - public IEnumerable FilesToWatch => null; - - public object MiddleLayer - { - get; - set; - } - - public object CustomMessageTarget => null; - - public bool ShowNotificationOnInitializeFailed => true; - - protected bool StartLanguageServerProcess() - { - ProcessStartInfo info = new ProcessStartInfo(); - //var programPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Server", @"LanguageServerWithUI.exe"); - //var programPath = "nomicfoundation-solidity-language-server"; - var programPath = "cmd.exe"; - info.FileName = programPath; - //info.WorkingDirectory = Path.GetDirectoryName(programPath); - info.Arguments = "/c C:\\Users\\Allister\\AppData\\Roaming\\npm\\nomicfoundation-solidity-language-server.cmd --stdio"; - info.RedirectStandardInput = true; - info.RedirectStandardOutput = true; - info.UseShellExecute = false; - info.CreateNoWindow = false; - - var process = new System.Diagnostics.Process(); - process.StartInfo = info; - process.EnableRaisingEvents = true; - process.Exited += (e, args) => - { - Info("Language server proceess exited. Restarting."); - process.Start(); - }; - ServerProcess = process; - return process.Start(); - } - public async Task ActivateAsync(CancellationToken token) - { - await Task.Yield(); - throw new Exception(); - - //Debugger.Launch(); - - if (StartLanguageServerProcess()) - { - Info("Started language server process {proc} {p}.", ServerProcess.StartInfo.FileName, ServerProcess.StartInfo.Arguments); - return new Connection(ServerProcess.StandardOutput.BaseStream, ServerProcess.StandardInput.BaseStream); - } - else - { - Info("Could not start language server process {proc}", ServerProcess.StartInfo.FileName); - return null; - } - } - - public async Task OnLoadedAsync() - { - if (StartAsync != null) - { - await StartAsync.InvokeAsync(this, EventArgs.Empty); - } - } - - public async Task StopServerAsync() - { - if (StopAsync != null) - { - await StopAsync.InvokeAsync(this, EventArgs.Empty); - } - } - - public Task OnServerInitializedAsync() - { - return Task.CompletedTask; - } - - public Task AttachForCustomMessageAsync(JsonRpc rpc) - { - this.Rpc = rpc; - - return Task.CompletedTask; - } - - public Task OnServerInitializeFailedAsync(ILanguageClientInitializationInfo initializationState) - { - string message = "Solidity language server failed to initialize."; - Error(message); - string exception = initializationState.InitializationException?.ToString() ?? string.Empty; - message = $"{message}\n {exception}"; - - var failureContext = new InitializationFailureContext() - { - FailureMessage = message, - }; - - return Task.FromResult(failureContext); - } - - internal class SolidityLanguageClientMiddleLayer : ILanguageClientMiddleLayer - { - public bool CanHandle(string methodName) - { - //Info("Calling method {m}", methodName); - //return methodName == Methods.TextDocumentCompletionName; - return true; - } - - public Task HandleNotificationAsync(string methodName, JToken methodParam, Func sendNotification) - { - Info("Notification {req} {param}.", methodName, methodParam.ToString()); - //await sendNotification(methodParam); - return Task.CompletedTask; - //throw new NotImplementedException(); - } - - public async Task HandleRequestAsync(string methodName, JToken methodParam, Func> sendRequest) - { - Info("Request {req} {param}.", methodName, methodParam.ToString()); - var result = await sendRequest(methodParam); - return result; - } - } - } -} diff --git a/src/Stratis.VS.Solidity2/SolidityLanguageSettings.json b/src/Stratis.VS.Solidity2/SolidityLanguageSettings.json deleted file mode 100644 index 5e04166..0000000 --- a/src/Stratis.VS.Solidity2/SolidityLanguageSettings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "foo.maxNumberOfProblems": -1 -} diff --git a/src/Stratis.VS.Solidity2/SolidityLanguageSettings.pkgdef b/src/Stratis.VS.Solidity2/SolidityLanguageSettings.pkgdef deleted file mode 100644 index 629addd..0000000 --- a/src/Stratis.VS.Solidity2/SolidityLanguageSettings.pkgdef +++ /dev/null @@ -1,5 +0,0 @@ -[$RootKey$\OpenFolder\Settings\VSWorkspaceSettings\SolidityLanguageExtension] -@="$PackageFolder$\SolidityLanguageSettings.json" - -[$RootKey$\TextMate\Repositories] -"Solidity"="$PackageFolder$\Grammars" \ No newline at end of file diff --git a/src/Stratis.VS.Solidity2/Stratis.VS.Solidity2.csproj b/src/Stratis.VS.Solidity2/Stratis.VS.Solidity2.csproj deleted file mode 100644 index 431d46e..0000000 --- a/src/Stratis.VS.Solidity2/Stratis.VS.Solidity2.csproj +++ /dev/null @@ -1,137 +0,0 @@ - - - - 17.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - false - - - Key.snk - - - - Debug - AnyCPU - 2.0 - {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - {6546214D-9FE1-4244-BC3E-2D7CA5A65194} - Library - Properties - Stratis.VS.Solidity2 - Stratis.VS.Solidity2 - v4.7.2 - true - true - true - false - false - true - true - Program - $(DevEnvDir)devenv.exe - /rootsuffix Exp - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - true - - - - - Designer - - - - - - - - - - - - - - 17.8.36 - - - 17.2.8 - - - - - - - Menus.ctmenu - - - - - true - VSPackage - - - - - true - Always - - - - - Always - true - - - Always - true - - - - - {a0bff0db-ed9a-4639-ae86-8e709a1efc66} - NLog - - - {f54aa3e2-f4bf-4c94-8ac9-a476265a70bf} - Stratis.DevEx.Base - - - - - - - \ No newline at end of file diff --git a/src/Stratis.VS.Solidity2/Stratis.VS.Solidity2Package.cs b/src/Stratis.VS.Solidity2/Stratis.VS.Solidity2Package.cs deleted file mode 100644 index b09e595..0000000 --- a/src/Stratis.VS.Solidity2/Stratis.VS.Solidity2Package.cs +++ /dev/null @@ -1,53 +0,0 @@ -using Microsoft.VisualStudio.Shell; -using System; -using System.Runtime.InteropServices; -using System.Threading; -using Task = System.Threading.Tasks.Task; - -namespace Stratis.VS -{ - ///

- /// This is the class that implements the package exposed by this assembly. - /// - /// - /// - /// The minimum requirement for a class to be considered a valid package for Visual Studio - /// is to implement the IVsPackage interface and register itself with the shell. - /// This package uses the helper classes defined inside the Managed Package Framework (MPF) - /// to do it: it derives from the Package class that provides the implementation of the - /// IVsPackage interface and uses the registration attributes defined in the framework to - /// register itself and its components with the shell. These attributes tell the pkgdef creation - /// utility what data to put into .pkgdef file. - /// - /// - /// To get loaded into VS, the package must be referred by <Asset Type="Microsoft.VisualStudio.VsPackage" ...> in .vsixmanifest file. - /// - /// - [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)] - [Guid(SolidityPackage.PackageGuidString)] - public sealed class SolidityPackage : AsyncPackage - { - /// - /// Stratis.VS.Solidity2Package GUID string. - /// - public const string PackageGuidString = "6aaa9d2d-e18e-4b7c-9cca-2d1dbb0b024d"; - - #region Package Members - - /// - /// Initialization of the package; this method is called right after the package is sited, so this is the place - /// where you can put all the initialization code that rely on services provided by VisualStudio. - /// - /// A cancellation token to monitor for initialization cancellation, which can occur when VS is shutting down. - /// A provider for progress updates. - /// A task representing the async work of package initialization, or an already completed task if there is none. Do not return null from this method. - protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress) - { - // When initialized asynchronously, the current thread may be a background thread at this point. - // Do any initialization that requires the UI thread after switching to the UI thread. - await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); - } - - #endregion -} -} diff --git a/src/Stratis.VS.Solidity2/StratisLogo200x200.png b/src/Stratis.VS.Solidity2/StratisLogo200x200.png deleted file mode 100644 index 5634633c055aed2973d8dd616d392a8b0fc56ae0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45290 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�AHW&r`0M8`gvhscwJ6?^oiV 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 M07*qoM6N<$f@rL56aWAK diff --git a/src/Stratis.VS.Solidity2/VSPackage.resx b/src/Stratis.VS.Solidity2/VSPackage.resx deleted file mode 100644 index 8c04aa7..0000000 --- a/src/Stratis.VS.Solidity2/VSPackage.resx +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - CustomCommand Extension - - - CustomCommand Visual Studio Extension Detailed Info - - - Resources\CustomCommandPackage.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/src/Stratis.VS.Solidity2/source.extension.vsixmanifest b/src/Stratis.VS.Solidity2/source.extension.vsixmanifest deleted file mode 100644 index 3557df7..0000000 --- a/src/Stratis.VS.Solidity2/source.extension.vsixmanifest +++ /dev/null @@ -1,27 +0,0 @@ - - - - - Stratis.VS.Solidity4 - Stratis smart contract extension - StratisLogo64x64.png - StratisLogo200x200.png - - - - amd64 - - - - - - - - - - - - - - - diff --git a/src/Stratis.VS.StratisEVM/SolidityLanguageClient.cs b/src/Stratis.VS.StratisEVM/SolidityLanguageClient.cs index a13bbfe..f800553 100644 --- a/src/Stratis.VS.StratisEVM/SolidityLanguageClient.cs +++ b/src/Stratis.VS.StratisEVM/SolidityLanguageClient.cs @@ -172,22 +172,19 @@ public bool CanHandle(string methodName) { //Info("Calling method {m}", methodName); //return methodName == Methods.TextDocumentCompletionName; - return false; + return true; } public async Task HandleNotificationAsync(string methodName, JToken methodParam, Func sendNotification) { Info("Notification {req} {param}.", methodName, methodParam.ToString()); await sendNotification(methodParam); - //return Task.CompletedTask; - //throw new NotImplementedException(); } public async Task HandleRequestAsync(string methodName, JToken methodParam, Func> sendRequest) { Info("Request {req} {param}.", methodName, methodParam.ToString()); - var result = await sendRequest(methodParam); - return result; + return await sendRequest(methodParam); } } } diff --git a/src/Stratis.VS.StratisEVM/SolidityLanguageSettings.json b/src/Stratis.VS.StratisEVM/SolidityLanguageSettings.json index 80b61bd..efe72d5 100644 --- a/src/Stratis.VS.StratisEVM/SolidityLanguageSettings.json +++ b/src/Stratis.VS.StratisEVM/SolidityLanguageSettings.json @@ -1,4 +1,3 @@ { - "solidity.maxNumberOfProblems": -1, - "solidity.trace.server": "Messages" -} + "solidity.trace.server": "Verbose" +} \ No newline at end of file diff --git a/src/Stratis.VS.StratisEVM/source.extension.vsixmanifest b/src/Stratis.VS.StratisEVM/source.extension.vsixmanifest index ddc4653..e44c499 100644 --- a/src/Stratis.VS.StratisEVM/source.extension.vsixmanifest +++ b/src/Stratis.VS.StratisEVM/source.extension.vsixmanifest @@ -3,7 +3,7 @@ Stratis.VS.StratisEVM - StratisEVM smart contracts extension. + StratisEVM smart contracts extension StratisLogo64x64.png StratisLogo200x200.png