-
Notifications
You must be signed in to change notification settings - Fork 5.2k
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
Use Language Server Protocol (LSP) to re-implement all code editing #1934
Comments
Oh nice! |
LSP has a general interface to interact with. But if we want to start with some very easy, Jedi can be a great starter in my experience. :) https://jedi.readthedocs.io/en/latest/docs/api.html#examples |
For more general cases of interactions, |
FYI, Devin (the closed one) is fully integrated with VS Code. That means it has access to all the extensions, linting, and debugging tools. I think this is something to consider |
I wonder if LSP can also actually edit the files, in addition to just monitoring file changes (usually user-triggered) and provide completion suggestions, etc. For the VSCode solution, maybe incorporating the full VScode is heavy, but the underlying editor of vscode, monaco, could be a good option. Alternatively, CodeMirror is also quite minimalist. These editors usually maintain editor state, including undo stack as well so that if the agent is doing something wrong, we can let it call "undo" function. For the |
Is it a good idea to incorporate complex LSP protocol with agent? |
LSP models cursors and code locations & ranges. And knowing the locations it's easy to insert code, isn't it ;). |
Good point. @ganler I wonder who maintains the cursor and code location states? (the editor states). For a real editor there's actual editor states, but it seems like we still have to maintain an "headless" editor in the backend |
This may also be another alternative/useful exploration: |
This issue is stale because it has been open for 30 days with no activity. Remove stale label or comment or this will be closed in 7 days. |
This issue is stale because it has been open for 30 days with no activity. Remove stale label or comment or this will be closed in 7 days. |
This issue is stale because it has been open for 30 days with no activity. Remove stale label or comment or this will be closed in 7 days. |
This issue is stale because it has been open for 30 days with no activity. Remove stale label or comment or this will be closed in 7 days. |
cc @ryanhoangt who is potentially interested in this |
Hi all, I am the author of Microsoft's monitors4codegen and multilspy repositories. I would be glad to help in any way possible with integrating LSP support in OpenHands. |
Hi @LakshyAAAgrawal, thanks for offering your help! I've tried to integrate |
This issue is stale because it has been open for 30 days with no activity. Remove stale label or comment or this will be closed in 7 days. |
Hi all! I apologize for not being able to follow up on this soon. Does anyone have ideas/suggestions for what are the main parts that require multilspy (https://aka.ms/multilspy) integration? My suggestion would be to start with one small feature that some current solution can be replaced by lsp, and then slowly expand the set of locations. Since I am new to Openhands, it would be great if anyone could advise about what might be the best place to start with integration! |
What problem or use case are you trying to solve?
OpenDevin now sometimes suffers with edit command (concrete example: #1928).
Describe the UX of the solution you'd like
As suggested by a friend @ganler, maybe it is more like a fundamental solution if we can gradually replace all the
swe-agent
tools to interface with a Language Server Protocol:It gives us the ability to:
Do you have thoughts on the technical implementation?
IPython
capability for editing, write these file operation functions in Python, and have the model write and execute Python cells to perform file operations? -- can directly wrap around https://github.com/microsoft/monitors4codegen?tab=readme-ov-file#4-multilspyDescribe alternatives you've considered
Additional context
The text was updated successfully, but these errors were encountered: