Skip to content

✨ Language Server Protocol Integration #40

Open

Description

@heftymouse

The Language Server Protocol defines a cross-editor protocol to obtain rich language features from an external source. Adding support for this to CodeEdit would make it far simpler to port language extensions from other IDEs (especially VSCode), making everyone's life easier :p

Activity

  1. mattmassicotte commented on Mar 20, 2022

    @mattmassicotte

    I work on two libraries related to Language Server Protocol that could be helpful.

    LanguageServerProtocol is low-level protocol support. LSP has a very large spec with a huge amount of types, not all of which map nicely to Swift. This lib wraps up all that.

    LanguageClient is a much higher-level abstraction that supports client-server interactions, as well as transparent server restarting.

    Now, if you are thinking of some kind of VS Code extension interoperability, I'm not sure how much these will help, as all the VSC stuff is implemented in JavaScript.

  2. changed the title [-]Suggestion: Implement Language Server Protocol for extensions[/-] [+][FEAT] - Suggestion: Implement Language Server Protocol for extensions[/+] on Mar 21, 2022
  3. changed the title [-][FEAT] - Suggestion: Implement Language Server Protocol for extensions[/-] [+][FEAT] Language Server Protocol[/+] on Mar 22, 2022
  4. changed the title [-][FEAT] Language Server Protocol[/-] [+]✨ Language Server Protocol[/+] on Mar 31, 2022
  5. added
    wontfixThis will not be worked on
    and removed
    wontfixThis will not be worked on
    on May 30, 2022
  6. deleted a comment from stale on Jun 1, 2022
  7. austincondiff commented on Jun 1, 2022

    @austincondiff
    Collaborator

    Where are we on this issue? What do we have left to call it done? It may be good to define this issues scope.

    @lukepistrol does this tie into what you are working on in the new editor?

  8. lukepistrol commented on Jun 1, 2022

    @lukepistrol
    Member

    @austincondiff I have yet to read into the LSP stuff. At some point I'm sure this would get implemented into CodeEditTextView though.

  9. 17 remaining items

  10. austincondiff commented on Jul 19, 2023

    @austincondiff
    Collaborator

    @matthijseikelenboom I don't think any one person should be responsible for spearheading this. I don't think anyone has time to tackle this huge task that is before us alone. Even if they did, it is not a good idea to work independently on this without collaboration with the rest of the community. It needs to be a group effort.

    After carefully agreeing together on an approach, it might be helpful to discuss each piece of work required to get this working and document what is agreed upon as a community. We should divide this into small pieces so no one single person does not feel like they need to tackle big chunks of work alone.

  11. FastestMolasses commented on Jul 19, 2023

    @FastestMolasses
    Member

    Lots of great links and libraries. Will be going through all of these. I agree, fleshing out the extensions first is necessary. I'll take notes from the VSCode implementation and then study what we currently have and what we need.

  12. matthijseikelenboom commented on Jul 21, 2023

    @matthijseikelenboom
    Contributor

    @mattmassicotte It's not so much security, but more the problems that could occur if you just load a bundle in Swift on macOS. It's the whole dealing with XPC connections and sandboxing. When using a VM, you don't have that problem. It's handled by the VM.

  13. mattmassicotte commented on Jul 21, 2023

    @mattmassicotte

    @matthijseikelenboom oh interesting so when you load code into a Java/C# process that code does not have access to the full VM environment that loaded it? I didn't realize it provided that kind of isolation!

  14. matthijseikelenboom commented on Jul 21, 2023

    @matthijseikelenboom
    Contributor

    @mattmassicotte Okay so, I went and look into it further, in Java's case. I asked some of my senior (for a lack of a better word) colleagues, and apparently I'm wrong 😅. It seems it's not default behavior, but it's achievable with OSGi. (In my defense, I thought it would be default behavior to load it in isolation, because it was explained in OCP. Assuming that is best practice)

  15. mattmassicotte commented on Jul 22, 2023

    @mattmassicotte

    Ok super interesting, and thanks for following up @matthijseikelenboom! I know nothing about Java.

  16. fbartho commented on Mar 22, 2024

    @fbartho

    This seems a hefty feature, but appears to be a blocker for a ton of interesting functionality. Given there's been no updates in 8 months, I assume this is stalled.

    Is this actually in progress and I just need to monitor elsewhere? (I only learned about CodeEdit today, so sorry if I'm unfamiliar with the Org Structure and communication norms)

    Note: I found this ticket because it blocks: Github Copilot Support CodeEditApp/CodeEdit#1182, and that would be the unlock that moves me from VSCode to CodeEdit for most projects!

  17. austincondiff commented on Mar 23, 2024

    @austincondiff
    Collaborator

    @fbartho it is currently being worked on by @FastestMolasses. We need to make a few architectural adjustments so we can finish. This is our next milestone and our biggest priority for CodeEdit at the time of writing.

  18. moved this from 📋 Todo to 🏃‍♂️ In Progress in CodeEdit Projecton Mar 23, 2024
  19. moved this from 🏃‍♂️ In Progress to 📋 Todo in CodeEdit Projecton Mar 23, 2024
  20. moved this from 📋 Todo to 🏃‍♂️ In Progress in CodeEdit Projecton Mar 23, 2024
  21. added a commit that references this issue on Nov 18, 2024
  22. boozook commented on Nov 28, 2025

    @boozook

    Also, please do not download-and-install LS without explicit confirmation, just use already existing LS pointed by user. Or make that downloading optional and disablable globally. Please 🙏

  23. PiotrBaczkowski96 commented on Dec 17, 2025

    @PiotrBaczkowski96

    Hi, Is it being worked on?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions