Giter Site home page Giter Site logo

Comments (15)

razzmatazz avatar razzmatazz commented on July 28, 2024 1

btw, could you add PR with FAQ entry to README.md on this project on how to make it work?

Ok , I see. btw, you means your project, the csharp-language-server?

yes, here https://github.com/razzmatazz/csharp-language-server/blob/master/README.md

I see there is not FAQ yet, -- just add new FAQ section and then you could just drop a line with reference to your project or general directions on to make metadata work on nvim

from csharp-language-server.

razzmatazz avatar razzmatazz commented on July 28, 2024

hi @chen244

support for decompilation is an (custom) extension of lsp protocol and needs work on the client to be supported (works on emacs only for now, AFAIK)

if you're willing to do this I can provide pointers; you should probably check java/clojure or other related nvimlsp client where decompilation is supported, copy the code and I can help you hack it in

from csharp-language-server.

Decodetalkers avatar Decodetalkers commented on July 28, 2024

hi @chen244

support for decompilation is an extension of lsp protocol and needs work on the client to be supported (works on emacs only for now, AFAIK)

if you're willing to do this I can provide pointers; you should probably check java/clojure or other related nvimlsp client where decompilation is supported, copy the code and I can help you hack it in

Thanks. what should I do , how to make a lsp extension to support decompile? I will try. Can you help me?

from csharp-language-server.

razzmatazz avatar razzmatazz commented on July 28, 2024

can you find an existing nvimlsp client that suports decompilation? so we can have some starting base. maybe java or clojure or some other?

from csharp-language-server.

Decodetalkers avatar Decodetalkers commented on July 28, 2024

can you find an existing nvimlsp client that suports decompilation? so we can have some starting base. maybe java or clojure or some other?

Hoffs/omnisharp-extended-lsp.nvim#6
It is decompile for omnisharp
But it is the autor says it is because the bug of omnisharp..

from csharp-language-server.

razzmatazz avatar razzmatazz commented on July 28, 2024

this is a great start!

I have no experience in nvim/lua but copying most of the logic plus doing a couple of changes should work as the protocol for csharp-ls "get metadata" is not that different from omnisharp-lsp "get metadata" op

from csharp-language-server.

Decodetalkers avatar Decodetalkers commented on July 28, 2024

Thanks very much

from csharp-language-server.

Decodetalkers avatar Decodetalkers commented on July 28, 2024
local result, err = client.request_sync("o#/metadata", params, 10000)

in omnisharp , it get the decompile from o#/metadata, but how can I get the result in csharp_ls

from csharp-language-server.

razzmatazz avatar razzmatazz commented on July 28, 2024

the handler for this on csharp-ls is "csharp/metadata":

you need to send this:

and the response is:

you can see emacs lsp-mode implementation here:

please ask if you need request examples, I may be able to provide lsp traces for what emacs sends and receives so you can emulate this

from csharp-language-server.

Decodetalkers avatar Decodetalkers commented on July 28, 2024

the handler for this on csharp-ls is "csharp/metadata":

* https://github.com/razzmatazz/csharp-language-server/blob/master/src/CSharpLanguageServer/Server.fs#L1206

you need to send this:

* https://github.com/razzmatazz/csharp-language-server/blob/master/src/CSharpLanguageServer/Server.fs#L72

and the response is:

* https://github.com/razzmatazz/csharp-language-server/blob/master/src/CSharpLanguageServer/Server.fs#L76

you can see emacs lsp-mode implementation here:

* https://github.com/emacs-lsp/lsp-mode/blob/master/clients/lsp-csharp.el#L381

please ask if you need request examples, I may be able to provide lsp traces for what emacs sends and receives so you can emulate this

For example ,I get
csharp:/metadata/projects/trainning2/assemblies/System.Console/symbols/System.Console.cs
this url

and I will get

{
      assymblyName = "System.Console", 
     projectName = "trainning2",
      typeName = "System.Console"
}

Then I send this to csharp/metadata. is it right?

from csharp-language-server.

razzmatazz avatar razzmatazz commented on July 28, 2024

emacs trace for go-to-def to string:

Screenshot 2022-03-08 at 13 15 02

resolving definition:

Screenshot 2022-03-08 at 13 17 28

then it sees that the url is csharp:/ and retrieves metadata:

Screenshot 2022-03-08 at 13 18 17

from csharp-language-server.

Decodetalkers avatar Decodetalkers commented on July 28, 2024

emacs trace for go-to-def to string:

Screenshot 2022-03-08 at 13 15 02

resolving definition:

Screenshot 2022-03-08 at 13 17 28

then it sees that the url is csharp:/ and retrieves metadata:

Screenshot 2022-03-08 at 13 18 17

I Got it! will

https://github.com/chen244/csharpls_extend-lsp.nvim

I finished it!!

from csharp-language-server.

razzmatazz avatar razzmatazz commented on July 28, 2024

great!

from csharp-language-server.

razzmatazz avatar razzmatazz commented on July 28, 2024

btw, could you add PR with FAQ entry to README.md on this project on how to make it work?

from csharp-language-server.

Decodetalkers avatar Decodetalkers commented on July 28, 2024

btw, could you add PR with FAQ entry to README.md on this project on how to make it work?

Ok , I see. btw, you means your project, the csharp-language-server?

from csharp-language-server.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.