Metadata-Version: 2.4
Name: abinit-lsp
Version: 0.1.1rc1
Summary: Language Server Protocol and CLI tools for ABINIT input files
Project-URL: Homepage, https://github.com/newtontech/abinit-lsp
Project-URL: Issues, https://github.com/newtontech/abinit-lsp/issues
Author: newtontech
License: MIT
License-File: LICENSE
Keywords: language-server,lsp,materials-science,matmaster
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 :: Text Editors :: Integrated Development Environments (IDE)
Requires-Python: >=3.9
Provides-Extra: dev
Requires-Dist: mypy>=1.8; 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

# abinit-lsp

`abinit-lsp` is an MVP Language Server Protocol and CLI toolkit for ABINIT files used in MatMaster workflows.

The first version is intentionally deterministic and lightweight: static parsing, lint diagnostics, safe formatting, and machine-readable JSON output live here. Full scientific execution, Bohrium submission, and heavy workflow automation stay outside the LSP and should be invoked explicitly by higher-level tools.

## CLI Surface

```bash
abinit-lsp --stdio
abinit-lint ./case --json
abinit-fmt -w input.file
abinit-test static ./case --json
```

Diagnostic JSON uses the shared newtontech LSP shape: `file`, `line`, `column`, `severity`, `code`, `message`, `evidence`, `suggested_fix`, and `confidence`.

## Development

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

## Scope

This repository is seeded from MatMaster skill contracts and evaluation fixtures. The roadmap is tracked in GitHub issues and should converge toward parser-backed diagnostics, completion, hover documentation, formatting, OpenQC integration, and regression fixtures.
