diff --git a/README.md b/README.md index f43d571..0715525 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ILSpy Visual Studio Code Extension [![Visual Studio Marketplace](https://img.shields.io/visual-studio-marketplace/v/icsharpcode.ilspy-vscode)](https://twitter.com/ilspy) [![Join the chat at https://gitter.im/icsharpcode/ILSpy](https://badges.gitter.im/icsharpcode/ILSpy.svg)](https://gitter.im/icsharpcode/ILSpy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![CI](https://github.com/icsharpcode/ilspy-vscode/actions/workflows/ci.yml/badge.svg)](https://github.com/icsharpcode/ilspy-vscode/actions/workflows/ci.yml) +# ILSpy Visual Studio Code Extension [![Visual Studio Marketplace](https://img.shields.io/visual-studio-marketplace/v/icsharpcode.ilspy-vscode)](https://twitter.com/ilspy) [![Join the chat at https://gitter.im/icsharpcode/ILSpy](https://badges.gitter.im/icsharpcode/ILSpy.svg)](https://gitter.im/icsharpcode/ILSpy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![CI](https://github.com/icsharpcode/ilspy-vscode/actions/workflows/ci.yml/badge.svg)](https://github.com/icsharpcode/ilspy-vscode/actions/workflows/ci.yml) You can install the extension in Visual Studio Code via the [marketplace](https://marketplace.visualstudio.com/items?itemName=icsharpcode.ilspy-vscode) @@ -43,7 +43,7 @@ cd backend dotnet test ``` -Or open `backend/ILSpy-server.sln` in Visual Studio 2022 (>= 17.8) or another .NET IDE. +Or open `backend/ILSpy-backend.sln` in Visual Studio 2022, Visual Studio Code or JetBrains Rider. To develop and debug the VSCode extension, install [Visual Studio Code](https://code.visualstudio.com/), then run diff --git a/backend/ILSpy-backend.sln b/backend/ILSpy-backend.sln index 8e3c63b..f9fa6b2 100644 --- a/backend/ILSpy-backend.sln +++ b/backend/ILSpy-backend.sln @@ -11,6 +11,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution ..\.github\dependabot.yml = ..\.github\dependabot.yml LICENSE.TXT = LICENSE.TXT README.md = README.md + ..\README.md = ..\README.md EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestAssembly", "TestAssembly\TestAssembly.csproj", "{98030DE1-DC87-4E74-8201-FE8E93E826B5}" diff --git a/backend/README.md b/backend/README.md index d8ad26a..7f3a811 100644 --- a/backend/README.md +++ b/backend/README.md @@ -1,8 +1,15 @@ -# ILSpy back end service +# ILSpy Backend Service -## ILSpy.Backend +## ILSpyX.Backend -A backend service providing a [Language Server Procotol](https://microsoft.github.io/language-server-protocol/) interface to `ICSharpCode.Decompiler` API. +Abstraction layer based on [ICSharpCode.Decompiler](https://www.nuget.org/packages/ICSharpCode.Decompiler/) +and [ICSharpCode.ILSpyX](https://www.nuget.org/packages/ICSharpCode.ILSpyX/) implementing a cross-platform variant of +assembly tree, decompilation, symbol search and analysis features as known from ILSpy desktop application. + +## ILSpyX.Backend.LSP + +A [Language Server Procotol](https://microsoft.github.io/language-server-protocol/) interface around `ILSpyX.Backend` to +be accessible from the VSCode extension. Apart from general service initialization, following custom LSP messages are supported: @@ -12,8 +19,13 @@ Apart from general service initialization, following custom LSP messages are sup - `ilspy/decompileNode` - `ilspy/getNodes` - `ilspy/search` +- `ilspy/analyze` -The idea of the interface is a dynamic tree of typed _nodes_ representing the list of assemblies and their contents. This is similar to the tree presented in ILSpy desktop application. Clients use `ilspy/getNodes` message to access nodes and their children. To get the code for a specific node (which may be an assembly, a class, a single method etc.), clients use `ilspy/decompileNode` message. +The idea of the interface is a dynamic tree of typed _nodes_ representing the list of assemblies and their contents. +This is similar to the tree presented in ILSpy desktop application. +Clients use `ilspy/getNodes` message to access nodes and their children. +To get the code for a specific node (which may be an assembly, a class, a single method etc.), clients use +`ilspy/decompileNode` message. ## Develop @@ -25,7 +37,7 @@ cd ilspy-vscode/backend dotnet build ``` -or open `backend/ILSpy-backend.sln` in Visual Studio 2022 (>= 17.8) or another .NET IDE. +or open `backend/ILSpy-backend.sln` in Visual Studio 2022, Visual Studio Code or JetBrains Rider. ## License