Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CLOSED] Language Server Protocol Support for Brackets #11952

Open
15 tasks done
core-ai-bot opened this issue Aug 30, 2021 · 11 comments
Open
15 tasks done

[CLOSED] Language Server Protocol Support for Brackets #11952

core-ai-bot opened this issue Aug 30, 2021 · 11 comments

Comments

@core-ai-bot
Copy link
Member

Issue by jhasubhash
Tuesday Dec 04, 2018 at 13:37 GMT
Originally opened as adobe/brackets#14606


This covers the first cut of Language Server Protocol Support for Brackets.

Basic core implementation to:

  • Initiate/Stop a Language Server
  • Interact with Language Server
    • Completions
    • Signature Help
    • Diagnostics
    • Jump To Dec/Decl/Impl
    • Symbols
    • References
    • Synchronization Events (Text Document didOpen, didChange etc.)
    • Custom Request/Notification (so the developer can use commands not exposed in the initial implementation)
  • Bidirectional Request/Notification system for communication between Brackets and Language Server
  • Abstraction of LSP from Brackets (as far as possible)
  • Creation of Language Client that works as the handle to Language Server from Brackets side
  • Support for all communication types: IPC, Pipe, Socket and Standard I/O

TODO:

  • Move vscode-languageserver-protocol to Thirdparty
  • Tooling Manager
    • CodeHints
    • ParameterHints
    • Diagnostics
    • Jump to Def/Decl/Impl
    • Priority
    • Translate brackets events to LSP events
    • Default handlers for all the above Tooling Interfaces
  • Project level event handling
    • Project Switch
    • Reload with Extensions
  • Grunt modifications for build generation
  • UI
  • Tests

This feature can be experienced with the reference Language Client implementation for PHP here : adobe/brackets#14671


jhasubhash included the following code: https://github.com/adobe/brackets/pull/14606/commits

@core-ai-bot
Copy link
Member Author

Comment by swmitra
Wednesday Feb 13, 2019 at 08:53 GMT


Rename all the files starting with lowercase.

@core-ai-bot
Copy link
Member Author

Comment by shubhsnov
Thursday Feb 21, 2019 at 06:43 GMT


Is this check necessary? I think we should just have not null check. if Params is not null, It should be in the proper format

No that won't work. I've tried to not use the LSP convention for params. The params are mostly based on the Brackets Convention. We convert the params to LSP format in ProtocolAdapter.js. The check for the format is only to be used for debugging purposes when we want to pass LSP format from the brackets side. It is advised that we use normal Brackets convention for passing params. I'll document the params soon. For debugging, you can use the format specified in MessageHandler.js.

@core-ai-bot
Copy link
Member Author

Comment by shubhsnov
Monday Mar 11, 2019 at 09:26 GMT


@adobe/open-source-office Please take care of the CLA check failure.

@core-ai-bot
Copy link
Member Author

Comment by stevengill
Monday Mar 11, 2019 at 19:32 GMT


Hey@shubhsnov is the author of this PR (@subhashjha333) an Adobe employee?

P.S. This is steve from the open source office.

@core-ai-bot
Copy link
Member Author

Comment by swmitra
Tuesday Mar 12, 2019 at 03:39 GMT


Yes@stevengill,@subhashjha333 is an active Adobe employee.

@core-ai-bot
Copy link
Member Author

Comment by stevengill
Tuesday Mar 12, 2019 at 17:46 GMT


@swmitra I have sent@subhashjha333 an invite to this adobe org on github. He needs to go to github.com/adobe and accept the invite at the top of that page. Once that is done, close and re-open this PR and the check should pass.

I'd also recommend@subhashjha333 add @Adobe to his github profile under the company field.

If any other adobe employee needs the CLA check, all they have to do is get added to this org. They can add themselves by following the instructions at https://git.corp.adobe.com/OpenSourceAdvisoryBoard/handbook/blob/master/GitHub-Adobe-Org-Management.md#request-access-to-our-adobe-github-org. This way we can get their adobe ID to github ID mapping. This request will send an invitation to this org which they will accept. After acceptance, close and re-open the PR to trigger the check again.

@core-ai-bot
Copy link
Member Author

Comment by vickramdhawal
Thursday Mar 21, 2019 at 09:23 GMT


@shubhsnov Can you add documents related to this PR to the wiki since its a fundamental feature that is being introduced for the longer run.
It will be helpful is design documents and other implementation details are present on the wiki.

@core-ai-bot
Copy link
Member Author

Comment by shubhsnov
Monday Apr 01, 2019 at 09:34 GMT


@petetnt Thanks for the review. I've addressed the comments.

@core-ai-bot
Copy link
Member Author

Comment by grire974
Thursday May 02, 2019 at 18:48 GMT


Wrong place for this comment I'm sure - but I just saw this feature (looks awesome thanks!) can't find documentation anywhere on how to implement it; for example can I install any of these LSP's?
https://langserver.org/

Some of the LSP's in this list (e.g. I'm interested in Java at the moment) have examples on how to install them on VSCode for example; I looked on the brackets wiki & don't see anything there either under Extensions->Languages that makes any mention of this new functionality.

@core-ai-bot
Copy link
Member Author

Comment by shubhsnov
Friday May 03, 2019 at 06:13 GMT


@grire974 This is a new feature and we're actively working on making the documentation better and more accessible for the developers. You can look at this page to get started.

We've tried to make sure that the Server integration part isn't too far off from how it works in VSCode, so basically, any extension which works for VSCode will work for us and often in the same way in terms of code pertaining to spawning a language server or interacting with it.

Please reach out to us in case you have any queries in the form of issues. Thanks for your interest.

@core-ai-bot
Copy link
Member Author

Comment by grire974
Friday May 03, 2019 at 20:20 GMT


Ah ok - that's pretty informative thanks. Sounds like then to answer my own question that the LSP's I linked to at langserver.org above might not work out of the box but could possibly be a starting point to modify into the brackets format (e.g. main.js etc...)? I've written a couple of basic brackets extensions before, so this could be a good next project for me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant