* Combine DOTALL and MULTILINE into a single flag for "multi-line mode",
replacing the dotall parameter with multiline/regex_multiline
* Apply the parameter in SearchForPatternTool
* Remove the dotall flag from editing tools (ReplaceContentTool, EditMemoryTool)
because edits should always use multi-line mode, but keep the multiline parameter
as an option in ContentReplacer
- Rename LSP_PORT → DEFAULT_GODOT_LS_PORT and add DEFAULT_GODOT_REQUEST_TIMEOUT
- Make port and request_timeout overridable via ls_specific_settings["gdscript"]
by reading self._custom_settings in _create_language_server_interface
- Move self._conn_info setup into _create_language_server_interface so it can
consume ls_specific_settings (which requires super().__init__ to have run)
- Fix _detect_godot_version to return int | None instead of always defaulting to 4:
use an explicit config_version→major dict; return None for unrecognized versions
and detection failures; caller logs warning on None
- Update setup guide and configuration reference docs with new settings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Closes#1446. Adds Language.GDSCRIPT backed by a new TCPLanguageServer
that extends LanguageServerInterface directly — no intermediate transport
abstraction layer.
Changes:
- ls_process.py: adds TCPConnectionInfo dataclass and TCPLanguageServer,
a LanguageServerInterface subclass that manages a TCP socket directly
(mirroring how StdioLanguageServer manages a subprocess). Stop order
closes the socket before the BufferedReader wrapper to avoid a deadlock
where BufferedReader.close() blocks on its internal read lock while
readline() holds it waiting for data.
- ls_config.py: adds Language.GDSCRIPT with .gd/.gdscript file matcher.
- language_servers/godot_language_server.py: GodotLanguageServer connects
to the Godot editor's TCP LSP (port 6008, same for Godot 3 and 4),
registers Godot-specific notification handlers, and performs the
initialize/initialized handshake. Godot version is auto-detected from
config_version in project.godot.
- docs: adds GDScript to the language support list and a dedicated setup
guide covering prerequisites, setup steps, performance characteristics
(no workspace/symbol support → first full scan is slow, disk cache
persists across sessions), and known limitations.
Tested against Godot 4.6.1 on Linux (Fedora 41): TCP connection,
initialize handshake, textDocument/documentSymbol returning full symbol
tree, and clean shutdown in <1s.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Switch UI font to Inter, keep monospace only for code/logs/paths/
identifiers (loaded via Google Fonts; system fallbacks)
- Refine the light/dark palette with softer borders, clearer text
hierarchy, and a more nuanced shadow/elevation system; introduce
--bg-elevated, --border-strong, --shadow-elevated tokens; retain the
orange accent
- Introduce a consistent spacing scale (--space-1..6) and apply it across
sections, modals, and controls
- Extract shared modal CSS classes (.modal-info, .modal-hint,
.modal-prompt, .modal-field, .modal-input, .modal-select,
.modal-textarea, .modal-actions, .btn-secondary) and strip duplicated
inline styles from all seven modals; add an accent-colored focus ring
for inputs/textareas and a subtle backdrop blur
- Replace the native <select> in Add Language with a filterable combobox:
type to filter, keyboard navigation (Up/Down/Enter/Esc), substring
highlight, click-outside to close; the typed value is validated against
the available languages list before submission
- Update CHANGELOG accordingly
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Dominik Jain <dominik.jain@oraios-ai.de>
* Add method _create_language_server_interface to allow different
interfaces to be used in subclasses (creates StdioLanguageServer
by default)
* Fix method order, moving creation methods back to the top
* Set server_started flag to False upon stop
* Inline method _start_server_process
Apply the process tree signalling functionality that was already implemented
in StdioLanguageServer (previously LanguageServerProcess) but not used.
Remove the process tree termination from the HLSL language server accordingly.