From 6594e91e279eeba3034ebb05a6e413bb3ecb7a3d Mon Sep 17 00:00:00 2001 From: bagel897 Date: Thu, 13 Feb 2025 15:19:40 -0800 Subject: [PATCH] Add codegen lsp --- pyproject.toml | 4 +++- src/codegen/cli/cli.py | 3 ++- src/codegen/cli/commands/lsp/lsp.py | 11 +++++++++++ uv.lock | 14 ++++++-------- 4 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 src/codegen/cli/commands/lsp/lsp.py diff --git a/pyproject.toml b/pyproject.toml index f820b7ae9..3f736794e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,6 +70,9 @@ dependencies = [ "numpy>=2.2.2", "mcp[cli]", "neo4j", + "pygls>=2.0.0a2", + "lsprotocol==2024.0.0b1", + "attrs>=25.1.0", ] license = { text = "Apache-2.0" } @@ -117,7 +120,6 @@ types = [ "types-requests>=2.32.0.20241016", "types-toml>=0.10.8.20240310", ] -lsp = ["pygls>=2.0.0a2", "lsprotocol==2024.0.0b1", "attrs>=25.1.0"] [tool.uv] cache-keys = [{ git = { commit = true, tags = true } }] dev-dependencies = [ diff --git a/src/codegen/cli/cli.py b/src/codegen/cli/cli.py index 9c89570c4..b78801a07 100644 --- a/src/codegen/cli/cli.py +++ b/src/codegen/cli/cli.py @@ -9,6 +9,7 @@ from codegen.cli.commands.list.main import list_command from codegen.cli.commands.login.main import login_command from codegen.cli.commands.logout.main import logout_command +from codegen.cli.commands.lsp.lsp import lsp_command from codegen.cli.commands.notebook.main import notebook_command from codegen.cli.commands.profile.main import profile_command from codegen.cli.commands.reset.main import reset_command @@ -43,7 +44,7 @@ def main(): main.add_command(reset_command) main.add_command(update_command) main.add_command(config_command) - +main.add_command(lsp_command) if __name__ == "__main__": main() diff --git a/src/codegen/cli/commands/lsp/lsp.py b/src/codegen/cli/commands/lsp/lsp.py new file mode 100644 index 000000000..6c36676b3 --- /dev/null +++ b/src/codegen/cli/commands/lsp/lsp.py @@ -0,0 +1,11 @@ +import logging + +import click + +from codegen.extensions.lsp.lsp import server + + +@click.command(name="lsp") +def lsp_command(): + logging.basicConfig(level=logging.INFO) + server.start_io() diff --git a/uv.lock b/uv.lock index 71e528e89..95d250880 100644 --- a/uv.lock +++ b/uv.lock @@ -541,6 +541,7 @@ source = { editable = "." } dependencies = [ { name = "anthropic" }, { name = "astor" }, + { name = "attrs" }, { name = "backoff" }, { name = "click" }, { name = "codeowners" }, @@ -558,6 +559,7 @@ dependencies = [ { name = "langchain-core" }, { name = "langchain-openai" }, { name = "lazy-object-proxy" }, + { name = "lsprotocol" }, { name = "mcp", extra = ["cli"] }, { name = "mini-racer" }, { name = "neo4j" }, @@ -573,6 +575,7 @@ dependencies = [ { name = "pydantic-settings" }, { name = "pygit2" }, { name = "pygithub" }, + { name = "pygls" }, { name = "pyinstrument" }, { name = "pyjson5" }, { name = "pyright" }, @@ -606,11 +609,6 @@ dependencies = [ ] [package.optional-dependencies] -lsp = [ - { name = "attrs" }, - { name = "lsprotocol" }, - { name = "pygls" }, -] types = [ { name = "types-networkx" }, { name = "types-requests" }, @@ -660,7 +658,7 @@ dev = [ requires-dist = [ { name = "anthropic", specifier = "==0.23.1" }, { name = "astor", specifier = ">=0.8.1,<1.0.0" }, - { name = "attrs", marker = "extra == 'lsp'", specifier = ">=25.1.0" }, + { name = "attrs", specifier = ">=25.1.0" }, { name = "backoff", specifier = "==2.2.1" }, { name = "click", specifier = ">=8.1.7" }, { name = "codeowners", specifier = ">=0.6.0,<1.0.0" }, @@ -678,7 +676,7 @@ requires-dist = [ { name = "langchain-core" }, { name = "langchain-openai" }, { name = "lazy-object-proxy", specifier = ">=0.0.0" }, - { name = "lsprotocol", marker = "extra == 'lsp'", specifier = "==2024.0.0b1" }, + { name = "lsprotocol", specifier = "==2024.0.0b1" }, { name = "mcp", extras = ["cli"] }, { name = "mini-racer", specifier = ">=0.12.4" }, { name = "neo4j" }, @@ -694,7 +692,7 @@ requires-dist = [ { name = "pydantic-settings", specifier = ">=2.0.0" }, { name = "pygit2", specifier = ">=1.16.0" }, { name = "pygithub", specifier = "==2.5.0" }, - { name = "pygls", marker = "extra == 'lsp'", specifier = ">=2.0.0a2" }, + { name = "pygls", specifier = ">=2.0.0a2" }, { name = "pyinstrument", specifier = ">=5.0.0" }, { name = "pyjson5", specifier = "==1.6.8" }, { name = "pyright", specifier = ">=1.1.372,<2.0.0" },