- Fix LSP server installer crash: exit raw mode before execute_command_line
- Add cmdstat parameter to prevent Fortran runtime errors on command failure
- Switch Python LSP installs from pip to pipx for isolated environments
- Add platform abstraction layer for cross-platform builds
- Port termios_wrapper.c to use Windows Console API
- Port lsp_process_wrapper.c to use CreateProcess/CreatePipe
- Port regex_wrapper.c with simplified Windows matching
- Add platform_module.f90 and platform_wrapper.c for clipboard,
temp directory, and path handling
- Update Makefile for MSYS2/MinGW detection
- Add GitHub Actions workflow for multi-platform CI builds
Multiline comments (/* */) and strings (""", `, etc.) were not
highlighted across multiple lines. This made reading C, JavaScript,
Python, and other languages difficult.
Also replaced stub panel renderers with real implementations so
document symbols and workspace symbols are now fully functional.
Implements a comprehensive language server management system inspired by
Neovim's Mason, providing users an easy way to discover and install LSP
servers directly from the editor.
Features:
- First-run experience: LSP Server Manager automatically appears on first launch
- Alt+M keybinding: Toggle the manager panel anytime
- 20 language servers supported including Python, C/C++, Rust, Go, JavaScript/TypeScript, Lua, Ruby, Java, and more
- Installation with confirmation: Select a server, press Enter to see install command, Y to confirm
- Server status detection: Uses 'which' to detect installed servers
- Navigation: j/k or arrows to navigate, r to refresh, Esc/q to close
- State persistence: First-run state stored in ~/.config/fac/state.json
New modules:
- src/workspace/app_state_module.f90: First-run detection and state persistence
- src/lsp/server_detection_module.f90: Detect installed language servers
- src/lsp/server_installer_module.f90: Execute installation commands
- src/ui/lsp_server_installer_panel_module.f90: Modal UI panel
Additional fixes:
- Fixed modal panel border alignment (Command Palette & LSP Server Manager)
- Removed circular dependency in unified_search_module
- Updated Makefile with new modules in correct dependency order