Author Topic: Language Server Protocol feature request  (Read 4320 times)

rowbearto

  • Senior Community Member
  • Posts: 2335
  • Hero Points: 132
Language Server Protocol feature request
« on: November 08, 2018, 05:28:44 PM »
Would be nice if SlickEdit could support Language Server Protocol for things like "diagnostics", "find references", "goto definition", "autocomplete", "hover" (code browsing operations). There have been various other threads about this, but not sure I've seen one yet in the "Features and/or Improvements" board.

Notice that Apple just announced they will support Language Server Protocol in XCode:

https://forums.swift.org/t/new-lsp-language-service-supporting-swift-and-c-family-languages-for-any-editor-and-platform/17024

Various other editors/IDEs already support it: VIM, Emacs, Sublime, VS Code, Zeus

Github and Facebook are collaborating on implementing it in Atom-IDE: https://jaxenter.com/atom-ide-language-server-137153.html

I rolled my own SE macro and scripts to support LSP which I use with the cquery code browser based on Clang, and there are many cases where it does a better job of filtering out references of overloads and same names symbols in C++. cquery also performs preprocessing of header files while SlickEdit doesn't do preprocessing.

See other threads:
https://community.slickedit.com/index.php?topic=16514.0
https://community.slickedit.com/index.php/topic,15799.0.html
https://community.slickedit.com/index.php/topic,16412.msg63183.html#msg63183
https://community.slickedit.com/index.php/topic,16412.msg63571.html#msg63571l
« Last Edit: November 23, 2018, 03:41:30 PM by rowbearto »

rowbearto

  • Senior Community Member
  • Posts: 2335
  • Hero Points: 132
Re: Language Server Protocol feature request
« Reply #1 on: December 10, 2018, 04:08:51 PM »
FYI: QtCreator just implemented Language Server Protocol in its latest release:

http://blog.qt.io/blog/2018/12/06/qt-creator-4-8-0-released/

rowbearto

  • Senior Community Member
  • Posts: 2335
  • Hero Points: 132
Re: Language Server Protocol feature request
« Reply #2 on: January 12, 2022, 11:02:52 PM »
I would like to ask again for Language Server Protocol support.

I'm now trying to browse a large C++ codebase that makes extensive use of 'auto' and C++ templates and SlickEdit's tagging engine is having some issues, some of which I have reported, others are complex for me to make a small test case.

I think that LSP servers like clangd and ccls are more mature now and may be able to fill in where SE's tagging falls short. These LSP engines also make use of clang compiler itself.

rowbearto

  • Senior Community Member
  • Posts: 2335
  • Hero Points: 132
Re: Language Server Protocol feature request
« Reply #3 on: January 24, 2022, 07:30:12 PM »
Below web page shows animations of how the clangd language server can interact with an IDE, it would be nice if SlickEdit could implement an interface to clangd like this:

https://clangd.llvm.org/features

I wrote a basic macro to interface with clangd and I'm finding there are some things it does better than SlickEdit's engine (such as determining the type of an 'auto' in range-based for loop), but other areas where SlickEdit's tagging engine is better - clangd missed a cross-reference that SlickEdit found.

My basic macro does not have all the fancy GUI integration it just gives a report in the Output window or Search window (for goto definition or find references). Would be SOO nice if SlickEdit could do what is in the animations on above website, especially for the auto-complete/auto-list.
« Last Edit: January 24, 2022, 08:08:23 PM by rowbearto »

John H.

  • Community Member
  • Posts: 45
  • Hero Points: 2
  • Systems and kernel programmer
Re: Language Server Protocol feature request
« Reply #4 on: May 19, 2022, 12:28:54 AM »
Is SlickEdit going to implement clangd LSP support? This is a big step forward and it looks like all of the competing editors have it. I'm working on the Linux kernel which has 25 or 30M lines of code, and although SlickEdit has been adequate, it is imperfect, because both definitions and references are missed when SE cannot quite figure out the macros. And the fundamental problem is simply that a real compiler is needed in order to get this right.

This is such a very big deal that, even after using SE for nearly 20 years, I'm getting ready to migrate to something else--something with this new clangd/LSP support. But I'd rather stay with SE, so please reply back with your intentions here.