Language Server Protocol implementation for ORCA quantum chemistry software.
- Syntax Highlighting: Full support for ORCA input file syntax
- Auto-completion:
- Methods (DFT functionals, wavefunction methods)
- Basis sets (Pople, Karlsruhe, Dunning)
- Job types (SP, OPT, FREQ, etc.)
- %blocks (%maxcore, %pal, %method, etc.)
- Diagnostics:
- Invalid keyword detection
- Parameter validation
- Missing required sections
- Memory and parallelization warnings
- Hover Documentation: Context-aware documentation for keywords
- Quick Fixes: Automatic suggestions for common errors
pip install orca-lsporca-lspThe server communicates via stdin/stdout following the Language Server Protocol.
This repository is part of the newtontech computational chemistry LSP family. newtontech/OpenQC-VSCode is the VS Code-facing integration layer for this server.
When changing diagnostics, completions, hover text, file detection, or parser fixtures, also update or open an alignment issue in OpenQC-VSCode so the extension behavior stays consistent with orca-lsp.
! B3LYP def2-TZVP OPT FREQ
%maxcore 4000
%pal nprocs 4 end
* xyz 0 1
O 0.000000 0.000000 0.000000
H 0.757160 0.586260 0.000000
H -0.757160 0.586260 0.000000
*
git clone https://github.com/newtontech/orca-lsp.git
cd orca-lsp
pip install -e ".[dev]"pytestReleases are published from v* tag pushes by .github/workflows/release.yml.
The workflow checks that the tag, Python package, VERSION, fixture manifest,
and OpenQC capability manifest agree, then builds the distributions and installs
the wheel into a new virtual environment. The isolated smoke verifies
orca-lsp --help, installed version metadata, the agent JSON CLI, and valid,
invalid, and runtime-log fixtures before the OIDC-enabled pypi environment can
publish. No long-lived PyPI token is used.
GitHub Release finalization runs independently after the verified wheel smoke
and attaches that exact build artifact. A PyPI outage or trusted-publisher
misconfiguration can therefore fail PyPI without suppressing the native GitHub
Release; the finalizer also proves that the checkout and tag equal
GITHUB_SHA before creating the release.
Maintainers can exercise the same artifact smoke before creating a tag:
python -m pip install build
python -m build
python scripts/verify_release.py --tag v0.5.6
python scripts/smoke_test_wheel.py --wheel dist/orca_lsp-0.5.6-py3-none-any.whlThe project maintains 100% test coverage:
pytest --cov=orca_lsp --cov-report=htmlOpen htmlcov/index.html to view the detailed coverage report.
Current coverage: 100% (320 tests)
- Architecture - Technical architecture and design
- User Guide - Installation and editor integration
- Contributing - Development guidelines
See the examples/ directory for sample ORCA input files:
water.inp- Water molecule optimization with B3LYPbenzene.inp- DLPNO-CCSD(T) single point on benzeneethylene.inp- Simple ethylene optimization
The parser provides:
- Full ORCA input file parsing
- Support for simple input lines (!)
- % block parsing with parameter extraction
- Geometry section parsing (XYZ and internal coordinates)
- Validation and diagnostics
The LSP server implements:
- Text completion for all contexts
- Hover documentation for keywords
- Diagnostics publishing
- Code actions for quick fixes
- Document synchronization
Comprehensive keyword database:
- DFT functionals (hybrid, GGA, meta-GGA, double-hybrid)
- Wavefunction methods (HF, MP2, CCSD, etc.)
- Basis sets (Pople, Karlsruhe def2, Dunning cc-pVXZ)
- Job types (SP, OPT, FREQ, TS, IRC, etc.)
- % blocks with examples
MIT