Metadata-Version: 2.4
Name: abacus-lsp
Version: 0.1.1rc1
Summary: Language Server Protocol and CLI tools for ABACUS INPUT, STRU, and KPT files
Project-URL: Homepage, https://github.com/newtontech/abacus-lsp
Project-URL: Issues, https://github.com/newtontech/abacus-lsp/issues
Author: newtontech
License: MIT
License-File: LICENSE
Keywords: abacus,dft,language-server,lsp,materials-science
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Text Editors :: Integrated Development Environments (IDE)
Requires-Python: >=3.9
Provides-Extra: dev
Requires-Dist: mypy>=1.8; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.4.0; extra == 'dev'
Provides-Extra: lsp
Requires-Dist: lsprotocol>=2023.0.0; extra == 'lsp'
Requires-Dist: pygls>=1.2.0; extra == 'lsp'
Description-Content-Type: text/markdown

# abacus-lsp

`abacus-lsp` is a Language Server Protocol and CLI toolkit for ABACUS `INPUT`,
`STRU`, and `KPT` files.

The project goal is to provide a fast, deterministic feedback layer for humans
and coding agents that write ABACUS inputs. The LSP should stay lightweight:
syntax, schema, cross-file checks, formatting, and explicit commands belong in
this repository; real ABACUS calculations, Bohrium submissions, and heavier
workflow automation should only run through explicit test or command entry
points.

## Initial CLI Surface

```bash
abacus-lsp --stdio
abacus-lint ./case --json
abacus-fmt -w INPUT STRU KPT
abacus-test static ./case
```

The first committed version includes a small static analyzer and formatter
scaffold so roadmap work can start from a runnable baseline.

## Development

```bash
python -m pip install -e ".[dev]"
pytest
ruff check src tests
```

The runtime package intentionally has no hard dependency on ABACUS, PyABACUS,
or ABACUS-agent-tools. Those integrations are planned as optional backends.

## Roadmap

The roadmap is tracked in GitHub issues and summarized in
[docs/roadmap/ROADMAP.md](docs/roadmap/ROADMAP.md).

