This is the development plan for vasp-lsp - a Language Server Protocol implementation for VASP input files.
- Setup project structure
- Basic parser implementation (INCAR, POSCAR, KPOINTS)
- Initial test suite
- LSP server implementation
- Diagnostics support
- Completion provider
- Hover documentation
- Hover documentation for INCAR tags
- Improve test coverage to 99%
- Code formatting
- Quick fixes
- Run tests:
pytest tests/ - Check coverage:
pytest --cov - Current status: run locally or check CI — see README for commands
See CI workflow (.github/workflows/ci.yml) for the latest verified coverage numbers.
- Nightly automated maintenance at random time
- See .maintenance/last-run.md for last check
- ✅ Fixed all Ruff lint errors (W293, F841, F601)
- ✅ All Ruff checks now pass
- ✅ Updated pyproject.toml with proper lint configuration
- ✅ All changes committed and pushed to GitHub
- Fixed W293: Removed whitespace from blank lines in docstrings
- Fixed F841: Removed unused variables in formatting.py and kpoints_parser.py
- Fixed F601: Removed duplicate 'ENCUTT' key in quickfixes.py
- Configured pyproject.toml to ignore E501 for long description strings
- All code now passes Ruff linting with zero warnings
- Fixed 461 Ruff lint errors across 40 files
- Fixed unused imports (F401) in all test files
- Fixed import order (I001) across all test files
- Fixed whitespace issues (W293) in test files
- Fixed unused variables (F841) in test files
- Fixed ambiguous variable names (E741) in test files
- Applied Ruff formatting to all source and test files
- All Ruff checks now pass with zero warnings
- ✅ Create VSCode extension configuration (Completed 2026-03-04)
- Add integration tests with real LSP clients
- Add more POSCAR/KPOINTS diagnostics and quick fixes
- Performance optimization and benchmarking
- v0.1.0: Initial release with core features
- v0.2.0: Added formatting support
- v0.4.0: Achieved 100% test coverage, code cleanup
- v0.4.1: Fixed all Ruff lint errors, improved code quality
- v0.4.2: Added POSCAR and KPOINTS diagnostics (current)
- ✅ Implemented POSCAR file diagnostics
- Parse error reporting
- Negative scale factor detection
- Zero atoms validation
- Out-of-range coordinate warnings for Direct coordinates
- ✅ Implemented KPOINTS file diagnostics
- Parse error reporting
- Non-positive grid value detection
- Sparse grid warnings
- K-point weights sum validation
- Added 12 new tests for POSCAR/KPOINTS diagnostics
- Coverage maintained
- ✅ Created VSCode extension configuration in editors/vscode/
- ✅ Added syntax highlighting for INCAR, POSCAR, KPOINTS
- ✅ Added snippets for common INCAR templates
- ✅ Extension manifest with proper language definitions
- ✅ Implemented POSCAR file quick fixes
- Fix negative scale factor (convert to positive)
- Wrap out-of-range direct coordinates to [0, 1] range
- Handle selective dynamics flags in coordinate fixes
- ✅ Implemented KPOINTS file quick fixes
- Fix non-positive grid values (set to 1)
- Normalize k-point weights to sum to 1.0
- Added 18 new tests for POSCAR/KPOINTS quick fixes
- Coverage: verified via CI (see
.github/workflows/ci.yml)
- Updated src/vasp_lsp/features/quickfixes.py
- Implemented _get_poscar_code_actions method
- Implemented _get_kpoints_code_actions method
- Added _create_fix_negative_scale_action helper
- Added _create_wrap_coordinates_action helper
- Added _create_fix_grid_action helper
- Added _create_normalize_weights_action helper
- ✅ Added comprehensive documentation
- Created CHANGELOG.md with complete version history
- Created docs/user-guide.md with installation and usage guide
- ✅ All LSP features fully implemented and tested
- INCAR, POSCAR, KPOINTS parsers complete
- Completion, Hover, Diagnostics, Formatting, Quick Fixes all working
- All tests passing
- Coverage: verified via CI (see
.github/workflows/ci.yml)
- README.md updated with latest features
- CHANGELOG.md added for version tracking
- docs/user-guide.md added for user documentation
- docs/architecture.md for developer documentation
- All development tasks completed
- GitHub issues: None (repository has issues disabled)
- PRs: None pending
- Code quality: All Ruff lint checks pass
- Test coverage: 100%
- Ready for release