Commit Graph
1061 Commits
Author SHA1 Message Date
Dominik JainandDominik Jain 17c0b2a949 Fix method reference 2025-07-10 00:41:06 +02:00
Dominik JainandDominik Jain 403e8905cf Remove unused method _get_code_file_content [skip ci] 2025-07-10 00:41:06 +02:00
Dominik JainandDominik Jain ee88204cba Remove obsolete base class ToolInterface 2025-07-10 00:12:13 +02:00
Dominik JainandDominik Jain 84e066e647 Remove unnecessary abstraction: MemoriesManagerMDFilesInProject -> MemoriesManager 2025-07-10 00:07:35 +02:00
Dominik JainandDominik Jain aae5dc59b5 Refactoring
* Project.is_path_ignored -> Project.is_ignored_relative_path
  * SerenaAgent.path_is_gitignored -> Project.is_ignored_path
  * SerenaAgent.path_is_inside_project -> Project.is_path_in_project
  * SerenaAgent.validate_relative_path -> Project.validate_relative_path
2025-07-10 00:02:05 +02:00
Dominik JainandDominik Jain 51d45cfa54 Move create_ls_for_project to Project.create_language_server 2025-07-09 23:45:01 +02:00
Dominik JainandDominik Jain ce9a4ef195 Add retrieve_content_around_line to Project (keeping LS version, too, for the time being),
such that FindReferencingSymbolsTool is now also implemented without a direct reference
to the language server

All references to Component.language_server have been removed
2025-07-09 23:38:20 +02:00
Dominik JainandDominik Jain 0057cbef4e Merge branch 'main' into jetbrains 2025-07-09 23:11:05 +02:00
Dominik JainandDominik Jain cbaf1484f3 Merge branch 'main' of github.com:oraios/serena 2025-07-09 23:10:53 +02:00
Dominik JainandDominik Jain 813ab630b4 Fix mypy issues 2025-07-09 23:10:25 +02:00
Dominik JainandDominik Jain 3d4d71206f Update Elixir tests 2025-07-09 23:05:36 +02:00
Dominik JainandDominik Jain 528d805aa4 Merge remote-tracking branch 'origin/main' into jetbrains 2025-07-09 23:00:51 +02:00
Dominik JainandDominik Jain d497a07779 Move 'symbol overview' function to SymbolManager to avoid using the LS directly in GetSymbolsOverviewTool 2025-07-09 22:59:41 +02:00
Dominik JainandDominik Jain 75436727d0 Refactoring: Remove names of methods moved to Project:
* search_files_for_pattern -> search_source_files_for_patterh
  * request_parsed_files -> gather_source_files
2025-07-09 22:42:20 +02:00
Dominik JainandDominik Jain c4d89f21e7 Move "search for pattern" functionality from LS to Project,
adding all necessary related functionality:
  * Handling of ignored files
  * Enumeration of source files

Functions removed from SolidLanguageServer:
  * index_repository
  * request_parsed_files
  * search_files_for_pattern

Implement SearchForPatternTool without language server
2025-07-09 22:37:57 +02:00
Michael PanchenkoandGitHub 30d51b7a03 Merge pull request #294 from v4rgas/fix/dart
Fix runtime dependency check in DartLanguageServer setup
2025-07-09 21:46:41 +02:00
v4rgas 94e76db1d4 Fix runtime dependency check in DartLanguageServer setup 2025-07-09 15:12:14 -04:00
Dominik JainandDominik Jain 34db0f1446 Make ReadFileTool independent of language server, adding a read function in Project 2025-07-09 20:10:03 +02:00
Dominik JainandDominik Jain edb07bc823 Move class Project to new module serena.project 2025-07-09 20:05:59 +02:00
Dominik JainandDominik Jain 8511888760 Rename module ls_tools -> symbol_tools
(They are no longer limited to LS-based tools, as the editing tools can use a different underlying CodeEditor)
2025-07-09 20:05:59 +02:00
Dominik JainandDominik Jain 021a6b0831 JetBrainsSymbol: Use line/column as directly returned by client 2025-07-09 20:05:59 +02:00
Dominik JainandDominik Jain 3873ca3506 Add CodeEditor creation to Component/Tool (switching between JetBrains- and LS-based variants) 2025-07-09 20:05:59 +02:00
Dominik JainandDominik Jain e989d1f87a Implement JetBrainsCodeEditor 2025-07-09 20:05:59 +02:00
Dominik JainandDominik Jain 19b9bc4e3f Introduce CodeEditor abstraction, removing all editing functions from SymbolManager
and adding LanguageServerCodeEditor as a specialization
2025-07-09 17:20:20 +02:00
Dominik JainandDominik Jain 7ffca9b3cb Add "type: ignore" to untyped inner function 2025-07-09 12:59:16 +02:00
Dominik JainandDominik Jain bd68883d27 Split history src/serena/symbol.py to src/serena/code_editor.py - restore name of source-file 2025-07-09 11:32:08 +02:00
Dominik JainandDominik Jain f70f9ff202 Split history src/serena/symbol.py to src/serena/code_editor.py - resolve conflict and keep both files 2025-07-09 11:32:07 +02:00
Dominik JainandDominik Jain 40743d19ad Split history src/serena/symbol.py to src/serena/code_editor.py - rename source-file to git-split-temp 2025-07-09 11:32:07 +02:00
Dominik JainandDominik Jain 4d7f97bb0c Split history src/serena/symbol.py to src/serena/code_editor.py - rename file to target-name 2025-07-09 11:32:06 +02:00
Dominik JainandDominik Jain 955c717c3f Add JetBrainsGetSymbolsOverviewTool 2025-07-09 11:14:43 +02:00
Michael PanchenkoandGitHub c61ea16870 Merge pull request #292 from almontasser/patch-1
Add rust_analyzer RuntimeDependency for Linux Arm64
2025-07-08 16:43:25 +02:00
Mahmoud AlmontasserandGitHub 51392f4800 Add rust_analyzer RuntimeDependency for Linux Arm64 2025-07-08 15:38:24 +02:00
Michael PanchenkoandGitHub a78fe030e8 Merge pull request #289 from jjshanks/patch-1
Update claude code mcp slash command for loading
2025-07-07 10:39:43 +02:00
Joshua ShanksandGitHub 2dd557d9ee Update claude code mcp slash command for loading
```
> /mcp__serena__initial_instructions
  ⎿  You are a professional coding agent concerned with one particular codebase. You have
     access to semantic coding tools on which you rely heavily for all your work, as well as collection of memory
     files containing general information about the codebase. You operate in a frugal and intelligent manner, always
     … +186 lines (ctrl+r to expand)

● I'm ready to help you with any coding tasks in the Serena codebase, jjshanks. I have access to semantic code analysis tools and can work
  on modifications, analysis, or any other development tasks you need. What would you like me to work on?
```
2025-07-06 17:43:23 -07:00
Michael PanchenkoandGitHub ab9fc74b64 Trigger CI 2025-07-07 00:37:18 +02:00
Michael PanchenkoandMichael Panchenko 532a04591e GH: Use static cache keys 2025-07-07 00:17:56 +02:00
Michael PanchenkoandMichael Panchenko f014682830 GH: removed unnecessary condition on ci skip
github checks for that anyway
2025-07-06 23:52:32 +02:00
Michael PanchenkoandMichael Panchenko c8d79786e4 GH: cache gopls and language server deps. Remove terraform-ls intallation
terraform-ls is installed on the fly
2025-07-06 23:48:43 +02:00
Michael PanchenkoandGitHub 3e1b7e1f56 Merge pull request #265 from oraios/refactoring/simplify_ls_setup
Refactoring/simplify ls setup
2025-07-06 23:33:01 +02:00
Joshua ShanksandGitHub f76ed700fa Fix X11/XCB crash when running MCP server in empty directories (#278)
Summary
Fixes X11/XCB crash when running serena-mcp-server in directories without source files
Adds headless environment detection to prevent GUI operations in SSH/WSL/Docker environments
Improves error messages to provide clear guidance when no source files are found
Problem
When running serena-mcp-server --context ide-assistant --project /empty/dir in a headless environment (SSH, WSL, Docker), the application would crash with X11/XCB errors:

[xcb] Unknown sequence number while appending request
[xcb] You called XInitThreads, this is not your fault
[xcb] Aborting, sorry about that.
python: ../../src/xcb_io.c:157: append_pending_request: Assertion `\!xcb_xlib_unknown_seq_number' failed.
Root Cause
Empty directories cause ProjectConfig.autogenerate() to raise a ValueError
The exception handler attempts to show a GUI error dialog using tkinter
In headless environments, tkinter crashes with X11/XCB errors
Solution
Headless Detection: Added is_headless_environment() to detect when running without a display
Skip GUI in Headless: Modified show_fatal_exception_safe() to skip GUI attempts in headless environments
Better Error Messages: Improved the error message for empty projects with clear instructions
2025-07-06 23:21:41 +02:00
Michael PanchenkoandMichael Panchenko 6c48a4da20 Merge branch 'main' into refactoring/simplify_ls_setup
# Conflicts:
#	src/solidlsp/ls.py
2025-07-06 23:16:42 +02:00
Michael PanchenkoandMichael Panchenko 1f38ec5f7b Format, removed unused vars 2025-07-06 23:15:33 +02:00
Michael PanchenkoandMichael Panchenko 1c2492c63c Typo 2025-07-06 22:23:31 +02:00
Michael PanchenkoandMichael Panchenko 49679c9318 TF LS: fixed method order execution
Previously a method relying on self.logger being set was called before it was set
2025-07-06 22:23:25 +02:00
Michael PanchenkoandMichael Panchenko 3981f021c6 Minor simplification of tf LS, formatting
Also fixed call to terraform.exe on non-windows platforms
2025-07-06 22:23:21 +02:00
YenandMichael Panchenko 1df9732390 feature/terraform language server support (#277)
Adds terraform support
2025-07-06 22:23:18 +02:00
Michael PanchenkoandMichael Panchenko a24dcea427 Formatting, removed unused vars and imports 2025-07-06 22:23:17 +02:00
Michael PanchenkoandMichael Panchenko 5102a38fbe Don't include relative_path in symbol's children dict representation 2025-07-06 22:23:07 +02:00
Dominik JainandGitHub bb595eb7e7 Refine runtime dependency helpers (#286) 2025-07-06 22:10:11 +02:00
Dominik JainandDominik Jain e306be796f Pythonify responses from JetBrains plugin server (camelCase -> snake_case) 2025-07-06 20:15:53 +02:00