Commit Graph
1481 Commits
Author SHA1 Message Date
MischaPanch 2c2fcc6a07 Allowed add_language to be issued asynchronously 2025-10-29 16:12:54 +01:00
MischaPanch 24a79899e8 Removed deprecated ruff rule 2025-10-29 16:12:24 +01:00
Dominik Jain b54a2d0cbf Merge pull request #704 from oraios/multi-ls
Add LanguageServerManager, adding simultaneous multi-language support
2025-10-29 12:49:33 +01:00
Dominik Jain c73637a8be Add LanguageServerManager.from_languages (moved from Project) 2025-10-29 12:24:55 +01:00
Dominik Jain 7d60326340 Simplify language server factory interfaces (one factory for all fits current requirements best) 2025-10-29 12:24:55 +01:00
Dominik Jain 653e8c4b90 Support the dynamic addition of languages while a project is already activated
Move LanguageServerManager ownership from SerenaAgent to Project

Add Project.save_config to support saving updated configurations
2025-10-29 01:02:05 +01:00
Michael Panchenko 6cbc22f19c Merge branch 'main' into multi-ls 2025-10-29 00:07:10 +01:00
MischaPanch 88caf59033 Added callout with link to config instructions and path to project config on hover
[ci skip]
2025-10-29 00:06:05 +01:00
MischaPanch 04910f866f Shutdown dashboard tab on overview page if server is closed 2025-10-28 23:51:46 +01:00
Dominik Jain d693580a7d Support multiple languages in generate-yml CLI command 2025-10-28 23:30:05 +01:00
Dominik Jain 31c39947a0 Adapt CLI tools to use LanguageServerManager 2025-10-28 22:35:12 +01:00
Dominik Jain 66a72d2b76 Update language settings in project configuration template 2025-10-28 18:52:23 +01:00
Dominik Jain 27b933796a Improve LS-related error handling, reporting and propagation 2025-10-28 18:52:23 +01:00
Dominik Jain 747d342166 Make stream reader thread names indicate the language 2025-10-28 18:52:23 +01:00
Dominik Jain c7a0afb6ce Spawn language servers in parallel (using threads) 2025-10-28 18:52:23 +01:00
Dominik Jain e0ab4db189 Add LanguageServerManager, adding multi-language support in a single project 2025-10-28 18:52:23 +01:00
Michael Panchenko 7d10457e66 Merge pull request #701 from Rheasilvia/main
feat: Support user's Maven and Gradle configuration files in JDTLS
2025-10-28 13:10:28 +01:00
mengjiechen a49d9a588b feat: Support user's Maven and Gradle configuration files in JDTLS
Add detection and usage of user's custom Maven and Gradle configuration
files to allow JDTLS to respect user-specific build tool settings.

Changes:
- Detect and use ~/.m2/settings.xml for Maven user settings
- Detect and use ~/.gradle for Gradle user home directory
- Set Maven updateSnapshots to false for better performance

This enhancement allows JDTLS to:
- Use custom Maven repositories and mirrors
- Respect proxy and authentication configurations
- Apply user-specific build tool settings
- Improve initialization performance by disabling automatic snapshot updates

The implementation gracefully falls back to None if configuration files
don't exist, maintaining backward compatibility with existing setups.
2025-10-28 19:23:25 +08:00
MischaPanch 45554623f8 Dashboard: added section displaying memories, show path to mode/context on hover
[ci skip]
2025-10-28 11:16:54 +01:00
Dominik Jain 340338f593 Update lock file 2025-10-28 01:07:26 +01:00
MischaPanch c43c9c55f5 Merge branch 'main' of github.com:oraios/serena 2025-10-27 22:15:46 +01:00
MischaPanch ad4fec9230 Enhance dashboard functionality
Added an overview (landing page showing current and available config) and advanced stats windows, controlled by top-right menu

Stats calculation is no longer optional, but we use a trivial token estimator by default
2025-10-27 22:08:53 +01:00
Suvarchal Kumar Cheedela a8f6ad92cc Add Fortran language support via fortls (#698) 2025-10-27 18:49:32 +01:00
David Markey 45407f7a2a Update agno API to the newest version, switch to AgentOS (#702) 2025-10-27 15:57:56 +01:00
MischaPanch 4bf2cbe818 Readme, changelog (mention Julia support) [ci skip] 2025-10-27 00:18:25 +01:00
Ketema Harris 37c4898bd6 feat: Add Haskell language server support (#697) 2025-10-26 23:30:40 +01:00
Dominik Jain 1461aff18c Improve description of RegexReplaceTool 2025-10-26 12:00:00 +01:00
Dominik Jain 70ab5e77bf Re-enable InitialInstructionsTool, because some clients do not read the system prompt
at connection time (e.g. Claude Desktop)

Establish a "name" for the instructions (Serena Instructions Manual) such that the agent
can know whether it has read the instructions and therefore will know whether or not
the tool needs to be called
2025-10-25 21:30:19 +02:00
Dominik Jain 570703d0ae Improve string representation of Project and JetBrainsSymbol
Improve typing of JetBrainsSymbol
2025-10-25 21:29:50 +02:00
Dominik Jain 1e06812d68 Fix: Allow increasing the log level (e.g. to WARNING or ERROR) 2025-10-23 12:26:41 +02:00
Vishwajit Sarnobat fd410a4638 feat: Add Julia language server support (#691)
Implements JuliaLanguageServer with LanguageServer.jl integration.
Includes comprehensive tests and auto-detection of Julia installations.

Checks for LanguageServer.jl on startup and installs via Pkg.add if not found. Only runs once on first use.
2025-10-22 00:37:12 +02:00
Dominik Jain 64ac699ac6 FileUtils.read_file: Remove logger parameter, do not wrap exceptions 2025-10-20 22:41:49 +02:00
玖亖伍 d88e2dd180 Enhancing file read robustness (#682)
If a file cannot be read using the project's defined encoding, 
use charset-normalizer to detect the likely encoding
2025-10-20 21:36:32 +02:00
MischaPanch f45c22045a Minor additions to readme, changelog [ci skip] 2025-10-19 12:55:34 +02:00
youM 6a28fff9d0 Feature: Support Scala Language (#528)
Unlike other language servers, metals LS only works properly when the project has been compiled in a particular way. Compiling like this on the fly or in CI is unfeasible, so instead, we expect the user to setup and compile the project correctly when using Serena for scala. Extensive documentation has been added.

Scala tests exist, but we don't run them in CI. They have been executed manually on macOS and Windows, thereby verifying that after following the instructions, Scala support works in Serena.
2025-10-19 12:47:52 +02:00
Dominik Jain 19b56d94bb Support rename_symbol for JetBrains 2025-10-17 18:10:05 +02:00
Dominik Jain 4d7072d9ed Fix mypy issues 2025-10-17 14:32:08 +02:00
Dominik Jain 89340ef197 Fix project-specific information (prompt, encoding, etc.) not being provided
when the project is activated at startup (ActivateProjectTool not applied)

Peripheral change: Move MemoriesManager into module 'project',
moving the instance into the Project instance, because memories are strictly
associated with the project

Fixes #681
2025-10-17 13:40:57 +02:00
Dominik Jain ef4c19c586 Merge pull request #674 from oraios/use-project-encoding 2025-10-17 00:50:03 +02:00
Dominik Jain 5d7aeb680f Intelephense: Account for spaces in launch command (use robust list syntax instead of string) 2025-10-16 22:35:50 +02:00
Dominik Jain 3cde03a8fb Introduce constant for Serena file encoding
* SERENA_FILE_ENCODING for Serena-specific files (config files, memories)
 * DEFAULT_SOURCE_FILE_ENCODING for source files (renamed from DEFAULT_ENCODING)
2025-10-16 22:10:35 +02:00
Nickolay Kondratyev b1d9ac5765 [README-only-change]: Add quotes around /home/nickolaykondratyev/git_repos/nickolay-kondratyev_serena per shell best practices (#679)
If someone uses spaces in file names /home/nickolaykondratyev/git_repos/nickolay-kondratyev_serena is likely to not work as expected due to argument splitting (hopefully people arent using spaces, but its best practice to quote everything in shell)
2025-10-16 20:10:38 +02:00
Nickolay Kondratyev fd8b0174f4 [README-only-change]: Add section for git worktree usage (#680) 2025-10-16 20:09:40 +02:00
Michael Panchenko 5dfb8ad912 Merge pull request #676 from oraios/minor_fix_in_ignored_path
Minor fix in ignored path
2025-10-16 18:34:44 +02:00
MischaPanch e1ba1befa9 Bugfix - special handling of edge case in ignore patterns
Was falsely matching project root against something like ".*" in gitignore
2025-10-16 18:05:51 +02:00
Dominik Jain 4e3db0bd09 Consistently use the project's encoding setting, also passing it on the LS 2025-10-16 15:04:06 +02:00
Dominik Jain 563e42efbd Add encoding entry to project.yml template (supported since 20th June) 2025-10-16 13:56:51 +02:00
Michael PanchenkoandDon Syme 25da7a505f Add rename_symbol method (#660)
Tested through a snapshot test on python. Calling the tool with language servers not supporting renaming will raise an error

Co-authored-by: Don Syme <dsyme@users.noreply.github.com>
2025-10-16 12:12:20 +02:00
Yen f2919f11c5 Add rego language support (#670)
Also added an ignore rule for ruff (about unused unpacked variables), we might reintroduce this rule later
2025-10-15 22:46:25 +02:00
Dominik Jain 39a11657a9 Project.validate_relative_path: Make handling of ignored files explicit #672 2025-10-15 18:16:55 +02:00