diff --git a/.serena/memories/language_servers.md b/.serena/memories/language_servers.md new file mode 100644 index 00000000..f6ea4d0b --- /dev/null +++ b/.serena/memories/language_servers.md @@ -0,0 +1,16 @@ +# Available Language Servers + +Serena supports multiple programming languages through language servers. The language servers currently available in the project are: + +## Directly Supported (Out of the Box) +- **Python**: Using Pyright Language Server (previously used Jedi) +- **Java**: Using Eclipse JDTLS (Note: startup is slow, especially initial startup) +- **TypeScript/JavaScript**: Using TypeScript Language Server + +## Indirectly Supported (May Require Manual Setup) +- **Ruby**: Using Solargraph +- **Go**: Using Gopls +- **C#**: Using OmniSharp +- **Rust**: Using Rust-Analyzer + +These language servers utilize the Language Server Protocol (LSP) to provide semantic code analysis capabilities. The system can be extended to support additional languages by providing adapters for new language server implementations. \ No newline at end of file diff --git a/.serena/memories/project_structure.md b/.serena/memories/project_structure.md new file mode 100644 index 00000000..c0e77127 --- /dev/null +++ b/.serena/memories/project_structure.md @@ -0,0 +1,16 @@ +# Project Structure + +The Serena codebase is organized as follows: + +- **src/serena/**: Main package with core functionality + - **llm/**: LLM integration + - **util/**: Utilities + - Key files: mcp.py, agno.py, agent.py +- **src/multilspy/**: Language server integration + - **language_servers/**: Implementations for different languages + - Python (pyright/jedi) + - Java (Eclipse JDTLS) + - TypeScript/JavaScript + - C#, Rust, Go, Ruby, C++ +- **test/**: Tests +- **scripts/**: Utility scripts \ No newline at end of file diff --git a/.serena/memories/suggested_commands.md b/.serena/memories/suggested_commands.md new file mode 100644 index 00000000..920b4d0c --- /dev/null +++ b/.serena/memories/suggested_commands.md @@ -0,0 +1,13 @@ +# Suggested Commands + +## Development Tasks (using uv and poe) + +The following tasks should generally be executed using `uv run poe `. + +- `lint`: This is the **only** allowed command for linting. Run as `uv run poe lint`. +- `format`: This is the **only** allowed command for formatting. Run as `uv run poe format`. +- `type-check`: This is the **only** allowed command for type checking. Run as `uv run poe type-check`. +- `test`: This is the preferred command for running tests (`uv run poe test [args]`). However, running tests directly with `uv run pytest [args]` is also permitted. + +For finishing a task, make sure format, type-check and test pass! Run them at the end of the task +and if needed fix any issues that come up and run them again until they pass. \ No newline at end of file diff --git a/.serena/project.yml b/.serena/project.yml new file mode 100644 index 00000000..e97251e5 --- /dev/null +++ b/.serena/project.yml @@ -0,0 +1,4 @@ +# language of the project (csharp, python, rust, java, typescript, javascript, go, or ruby) +language: python +# list of directories to ignore: either names (e.g. "temp") or relative paths (e.g. "build/foo") +ignore_all_files_in_gitignore: True