All notable changes to vim-solidity will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Nothing yet - next release will be 0.9.0 with Foundry tooling integration.
Major release with modern Solidity 0.8.x support and testing infrastructure
- Comprehensive testing infrastructure with vader.vim
- GitHub Actions CI for automated testing
- Solidity 0.8.24
transientkeyword support - Solidity 0.8.19
using ... globalsyntax support - Solidity 0.8.18 user-defined value types (
type Foo is uint256) - Solidity 0.8.4
errorkeyword for custom errors uncheckedblock syntax (0.8.0+)fallback()andreceive()special function keywordsglobalkeyword for library attachments- Contract-level code folding for contracts, libraries, and interfaces
- Foundry test file detection (
.t.solextension) - Foundry script file detection (
.s.solextension) - Buffer-local variable
b:solidity_file_typeto distinguish file types - Test fixtures for modern Solidity features, indentation, and folding
- Comprehensive test suites for syntax, indentation, and folding
- Contract bodies can now be folded (Issue #11)
- String literal syntax highlighting after function signatures (Issue #15)
- Indentation for some multi-line constructs may need manual adjustment (Issue #5)
- The indent logic is based on JavaScript and works well for most cases
- Complex multi-line function signatures with modifiers may need refinement
- Contributions welcome to improve edge cases
- Enhanced ftdetect to recognize Foundry file naming conventions
- Improved syntax highlighting for modern Solidity 0.8.x features
- Updated maintainer information
- Leave foldmethod to be configured by the user
- Fix syntax file maintainer
- Add 'require' to keywords
- Add 'revert' to keywords
- Add Yul opcode dialect
- Ensure Yul ops only highlight in assembly blocks
- Add 'switch' to statements
- Better handling of comments and doc comments
- Enhanced NatSpec comment support
If you were using the old vim-solidity, the main changes are:
- Modern Solidity Support: All Solidity 0.8.x features are now supported
- Contract Folding: Enable with
set foldmethod=syntaxto fold entire contracts - Foundry Support:
.t.soland.s.solfiles are automatically recognized - Testing: The plugin now has comprehensive automated tests
No breaking changes are planned. The plugin maintains backward compatibility with Vim 8.0+ and works in Neovim (though Neovim users may prefer solidity.nvim for LSP features).
- Unreleased: Modern Solidity 0.8.x support, testing infrastructure, Foundry integration
- 0.7.0: Yul support, comment improvements, basic keyword additions
- Earlier versions: See git history
See CONTRIBUTING.md for guidelines on contributing to vim-solidity.
MIT License - see LICENSE for details.