Commit Graph
1250 Commits
Author SHA1 Message Date
MischaPanch 6d28c7d722 Minor simplification of sourcekit_lsp.py, added sleeping at startup 2025-08-07 22:06:35 +02:00
MischaPanch 5236ffe2b6 Merge branch 'main' into feat/support-swift
# Conflicts:
#	.github/workflows/pytest.yml
#	pyproject.toml
#	src/solidlsp/ls.py
#	src/solidlsp/ls_config.py
2025-08-07 13:57:49 +02:00
Dominik Jain 523d8fa764 Merge pull request #431 from oraios/ls-handler-stderr-log-level
Add basic log level detection to stderr stream reader
2025-08-07 13:23:37 +02:00
Dominik Jain c1d7701223 Add basic log level detection to stderr stream reader 2025-08-07 12:57:55 +02:00
Dominik Jain 0f49429002 Formatting 2025-08-07 12:56:51 +02:00
jetbrains-junie[bot] e5641de0ff feat(junie): added .junie workflow (#430)
Co-authored-by: jetbrains-junie[bot] <201638009+jetbrains-junie[bot]@users.noreply.github.com>
2025-08-07 12:48:04 +02:00
johngambleubind b09cbc089d Fix #384: Use safe zip extraction for C# dependencies (#418) 2025-08-07 10:52:01 +02:00
Akira TSURUDAandClaude 2b4d68bea9 Add Bundler support and timeout configuration for Ruby projects (#419)
* Add Bundler support for Ruby projects

This change enhances the Solargraph language server implementation to properly support Ruby projects using Bundler with vendor/bundle configurations.

Key improvements:
- Detects Bundler projects by checking for Gemfile existence
- Supports both 'bin/bundle' and 'bundle' commands
- Checks Gemfile.lock for solargraph availability
- Uses 'bundle exec solargraph' when appropriate
- Provides clear error messages for missing solargraph in Bundler projects
- Maintains backward compatibility with non-Bundler projects

Fixes permission issues encountered with rbenv/system-managed Ruby installations
when trying to install gems globally.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add timeout configuration for Solargraph language server

This change adds proper timeout handling to the Solargraph Ruby language server
to address initialization timeout issues, especially in Bundler environments.

Key improvements:
- Set 120-second request timeout for LSP requests and initialization
- Add 60-second server readiness timeout with graceful fallback
- Enhanced logging for timeout scenarios
- Better handling of slow initialization in large projects or Bundler environments

This resolves connection timeout issues where Solargraph takes longer than
the default 30-second MCP timeout to fully initialize and become ready.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-08-07 00:05:35 +02:00
Dominik Jain f2d81812c7 Apply formatter 2025-08-06 20:58:14 +02:00
YenandClaude ec1277167b Add comprehensive bash language support (#375)
* feat: Add comprehensive bash language support

Implement BashLanguageServer using bash-language-server (v5.4.0)
- Add automatic Node.js/npm dependency management
- Support .sh and .bash file extensions
- Include cross-platform compatibility (Windows .cmd handling)
- Add comprehensive test infrastructure with realistic bash scripts
- Integrate bash into Language enum and language server factory
- Add bash pytest marker for selective testing
- Include bash_language_server fixture for tests

Features:
* LSP capabilities: text sync, completion, hover, document symbols
* Runtime dependency installation via npm
* Symbol recognition for functions, variables, conditionals
* Proper LSP initialization and error handling
* Test repository with main.sh, utils.sh, and config.sh examples

Files:
+ src/solidlsp/language_servers/bash_language_server.py (new implementation)
+ test/solidlsp/bash/test_bash_basic.py (comprehensive test suite)
+ test/resources/repos/bash/test_repo/ (test scripts)
* src/solidlsp/ls_config.py (add BASH enum and file patterns)
* src/solidlsp/ls.py (integrate bash language server)
* pyproject.toml (add bash pytest marker)
* test/conftest.py (add bash_language_server fixture)

Tests: 2 passed, 7 appropriately skipped
All existing tests continue to pass (288 passed total)

* trigger flow

* feat: enhance bash function detection with hybrid LSP + regex approach

- Upgrade bash-language-server from 5.4.0 to 5.6.0 for better capabilities
- Add hybrid function detection: primary LSP + regex fallback when needed
- Implement _detect_bash_functions() with regex patterns for both syntax types:
  * function name() { } (function keyword syntax)
  * name() { } (regular function syntax)
- Add _find_function_end() with brace matching for accurate function boundaries
- Enhance request_document_symbols() with intelligent fallback logic
- Add comprehensive test suite with 4 new test functions:
  * test_bash_function_detection_hybrid_approach
  * test_bash_function_detection_with_body
  * test_bash_regex_fallback_detection
  * test_bash_function_syntax_patterns
- All tests passing: 6 passed, 7 skipped, 0 failed
- Maintains 100% backward compatibility
- Enables full symbolic operations for bash functions: find_symbol, replace_symbol_body, etc.

* remove trash

* clean: remove debug changes from Python services.py

- Remove 'MODIFIED VIA SYMBOLIC OPERATIONS!' debug comments
- Remove debug print statements added during testing
- Restore original clean docstring and code
- No functional changes to bash language support implementation

* fix: Remove non-bash specific directory ignoring from BashLanguageServer

- Removes is_ignored_dirname override that included generic directories like node_modules, .cache, tmp, temp
- These directories aren't bash-specific and gitignore already handles file exclusion
- Addresses PR feedback: 'that doesn't seem bash related. Note that gitignored files are ignored anyway'

* fix: Restructure bash tests to follow standard patterns and remove pytest.skip

- Replace custom bash_language_server fixture with standard parametrized language_server fixture
- Remove all pytest.skip statements and replace with proper assertions or failures
- Remove tests for non-existent methods (get_symbols_for_document, get_workspace_symbols, etc.)
- Keep only tests that use actual SolidLanguageServer methods like request_document_symbols
- All bash tests now pass successfully
- Addresses PR feedback about test structure and pytest.skip removal

* docs: Add bash language support to README

- Add Bash to the list of directly supported languages
- Note that it requires Node.js and npm for bash-language-server installation
- Addresses PR feedback about missing README extension for bash support

* docs: Add bash language support to CHANGELOG

- Document comprehensive bash language support with bash-language-server integration
- Highlight key features: .sh/.bash extensions, hybrid function detection, automatic dependency management
- Note cross-platform compatibility including Windows support
- Addresses PR feedback about missing CHANGELOG extension for bash support

* refactor: Change regex fallback to always-on hybrid detection for bash functions

- Remove conditional logic that only ran regex when LSP found no functions
- Implement always-on hybrid approach that runs both LSP and regex detection
- Add comprehensive documentation explaining bash-language-server limitations
- Add new _merge_function_detections method to combine results without duplicates
- Addresses reviewer feedback about files with mixed function notation styles

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-08-06 16:41:04 +02:00
hyuraku 7158aa4870 Adds tests for Ruby language server integration (#416) 2025-08-06 15:21:43 +02:00
VH 396ca3f356 Add NodeJS inside Docker image (#421) 2025-08-06 13:34:01 +02:00
Kai Yao b931e97243 added support for rust 2024 edition (#412) 2025-08-05 18:15:35 +02:00
Dominik Jain 117285e0b1 Merge pull request #415 from liebertar/fix/dashboard-auto-close-tabs
Auto-close dashboard tabs when server stops responding
2025-08-05 11:36:40 +02:00
liebertar d56665d359 Auto-close dashboard tabs when server stops responding
This addresses the dashboard tab accumulation issue that's been brought up.
Having multiple tabs open gets disruptive during development.

Implemented the approach @opcode81 suggested - detecting when the server stops
responding and letting the tab close itself. The dashboard now monitors its
connection and auto-closes after 3 failed polling attempts.

Should help with the workflow disruption without being overly complex. Hope this helps\!

Fixes #388
2025-08-05 16:43:54 +09:00
kght6123 1d22a37797 Docker: improve documentation for quick setup (#394) 2025-08-04 17:20:36 +02:00
KeisukeKaji b50d821586 Add PATH lookup for solargraph binary before falling back to 'gem exec' 2025-08-04 16:07:35 +02:00
Michael Panchenko b1b94a3612 Merge pull request #402 from architectureman/main
Update rust_analyzer.py for macOS x64 intel/amd
2025-08-04 11:31:18 +02:00
architectureman f5e6e565ee Merge pull request #1 from oraios/main
Update from origin
2025-08-03 22:16:39 +07:00
MischaPanch a5db2f4616 Permissions: set sane mode (755) instead of just executable for downloaded binaries 2025-08-03 15:53:43 +02:00
MischaPanch 574eb7b327 GH: make sure cached dirs exist 2025-08-03 14:07:09 +02:00
Michael Panchenko cb8a928337 Merge pull request #393 from oraios/prompt-variable-tools
Allow system prompt to depend on available tools and tool categories …
2025-08-03 13:29:10 +02:00
Michael Panchenko 59bc24e019 Merge pull request #392 from oraios/feature/chatgpt-support
Connecting Serena to chatgpt
2025-08-03 13:28:55 +02:00
Michael Panchenko 186737a3f5 Merge pull request #398 from kazuki-hanai/escape-html
Fix: Add HTML escaping to dashboard log messages
2025-08-03 13:12:25 +02:00
Kazuki Hanai 7990c3f30d Fix: Add HTML escaping to dashboard log messages
Escape special HTML characters in log messages to prevent XSS vulnerabilities and ensure proper display of code snippets containing HTML tags.
2025-08-03 19:31:29 +09:00
Yangze Luo 2087bd3d1b Add swift lsp support 2025-08-03 13:26:07 +08:00
MischaPanch 069db44091 GH: fixing paths, hopefully cache starts working on unix 2025-08-03 00:26:03 +02:00
MischaPanch 3d8f5f7446 Added chatgpt context 2025-08-03 00:14:23 +02:00
MischaPanch 99757f35eb Made more tools optional and shortened several docstrings 2025-08-03 00:14:11 +02:00
MischaPanch 4410f37ab3 Context: back to using **data in from_yaml, remove to/from json_dict methods
Needed since some fields come from parent class, easy to make mistakes (like I did in the past commit)
2025-08-02 22:49:42 +02:00
MischaPanch eb0f44cb79 Fixed appending of "." to docstring and mock in test...
We should get rid of mocks eventually
2025-08-02 22:27:58 +02:00
Dominik Jain 1bff8fa774 Support use of available_tools and available_markers in context/mode prompts 2025-08-02 20:50:30 +02:00
Dominik Jain e9e05c2f3f Allow system prompt to depend on available tools and tool categories (as indicated by ToolMarkers)
* Introduce additional tool markers that represent relevant categories
* Apply some conditions to current system prompt
2025-08-02 20:32:34 +02:00
MischaPanch 46967fa3cb Allow overriding tool descriptions in the context, cli command for tool description 2025-08-02 19:52:35 +02:00
MischaPanch e41d09d937 Formatting 2025-08-02 18:55:34 +02:00
MischaPanch c44a6be58f Docs on connecting Serena to chatgpt 2025-08-02 17:38:20 +02:00
Michael Panchenko 2ef00a7e0d Merge pull request #389 from dragonfax/jstillwell/fix_solargraph
Solargraph (ruby): Use the framework provided by ruby gems to execute
2025-08-02 12:23:58 +02:00
Jason Stillwell 88ceb49200 Don't subvert the gem system and try to run the binary directly.
Instead use the framework provided by ruby gems to execute the provide binary.
2025-08-02 02:30:34 -05:00
MischaPanch 9af709eb7b MCP: update to 1.12.3, pass kwargs without dumping settings
The code also works for 1.12.2, but the new version has typed params in the constructor, and is thus better.
2025-07-31 23:35:08 +02:00
MischaPanch 9cf5ee22a6 Hotfix: pin mcp dependency to 1.12.2 2025-07-31 23:10:32 +02:00
Michael Panchenko d8377e3dbd Merge pull request #371 from oraios/feature/initial_instructions_without_tool
Feature/initial instructions without tool
2025-07-31 11:58:39 +02:00
MischaPanch c69e30a7bc Readme: moved uvx install option above the local installation option [ci skip] 2025-07-31 11:57:11 +02:00
MischaPanch d26dc3536a Readme: more info on CLI, initial instructions, and included_optional_tools 2025-07-31 11:52:51 +02:00
MischaPanch caa2c545e4 New feature: allow users to override prompts. Extended CLI for that 2025-07-30 12:10:15 +02:00
MischaPanch d624c1c0b9 Allow passing a list of dirs as prompts_dir, the tail of the list serving as fallbacks 2025-07-30 12:07:30 +02:00
MischaPanch 534567f11e Excluded more tools in ide-assistant mode
Namely:
  - prepare_for_new_conversation
  - summarize_changes
  - get_current_config
2025-07-29 15:57:40 +02:00
MischaPanch 3e49c83d89 Made initial instructions tool optional 2025-07-29 15:55:07 +02:00
MischaPanch 24d8932778 Merge branch 'main' into feature/initial_instructions_without_tool 2025-07-29 15:52:54 +02:00
Dominik Jain e37c2af571 Update deprecation message 2025-07-29 01:51:44 +02:00
Dominik Jain 39e67acc63 Update change log 2025-07-29 01:09:53 +02:00