## Version 1.0 - [x] Language Server scaffolding - [x] Hover - [x] Basic hovering - [x] Functions - [x] Methods - [x] Identifiers - [x] Kwargs - [x] Limited docs on hover - [x] Improve docs on functions/methods regarding arguments and return types - [x] Symbol resolving - [x] Basic diagnostics - [x] Type definitions for all modules/builtins - [x] Functions - [x] Builtin objects - [x] Modules - [x] CMake - [x] CUDA - [x] Dlang - [x] External Project - [x] Filesystem - [x] GNOME - [x] Hotdoc - [x] i18n - [x] Icestorm - [x] Java - [x] Keyval - [x] Python 3 - [x] Python - [x] Qt4 - [x] Qt5 - [x] Qt6 - [x] Simd - [x] SourceSet - [x] Rust - [x] Wayland - [x] Windows - [x] Formatting - [x] Symboltree - [x] Rudimentary autocompletion ## Version 2.0 - [x] Usable autocompletion - [x] More diagnostics - [x] Unused variables - [x] Deprecated options - [x] Full Wrap support - [x] Define data model - [x] Parse wrap files - [x] Setup directory structures - [x] wrap-file - [x] wrap-git - [x] wrap-hg - [x] wrap-svn - [x] Apply patches - [x] Apply diffs - [x] Check all checksums - [x] Use fallback URLs - [x] Apply to all files to WrapDB in CI - [x] Full Subproject support - [x] Setup subproject structure - [x] Load subprojects in `initialize` - [x] Wire it up so that the LSP functions work - [x] Include in type analysis - [x] Highlighting - [x] Cache tree from tree-sitter (And the AST that is generated from the tree-sitter tree!) - [x] More tests - [x] VSCode Extension (Just a fork of vscode-meson currently) - [x] Inlay hints - [x] Add swiftlint to CI - [x] Add swift-format to CI - [x] Add MacOS to CI - [x] Switch from atomics to Task.isCancelled for cancellation of parsing ## Version 3.0 - [x] Renaming - [x] Rename loop variables - [x] Rename local variables - [x] Code actions - [x] Integer literal to decimal/binary/octal - [x] `static_library`/`shared_library`/`both_libraries` to `library` - [x] `shared_library` to `shared_module` (And reverse) - [x] `configure_file(copy: true)` to `fs.copyfile()` - [x] Create dependency using `declare_dependency` from library - [x] Sort filenames - [x] Download wrap for missing subproject from WrapDB - [x] Document the language server - [x] Add to [vscode-meson](https://github.com/mesonbuild/vscode-meson/pull/123) upstream - [x] Upstream GNOME Builder plugin (See [issue #629](https://gitlab.gnome.org/GNOME/gnome-builder/-/issues/629)) - [x] Investigate PGO (Does not seem to work on Linux) - [x] Check if `CollectionOfOne` speeds up TypeAnalyzer (Not tested, but requires too many other changes) - [x] Autocomplete variable names in `subproj.get_variable()` - [x] Support apt-like - [x] Debian - [x] Stable - [x] Testing - [x] Unstable - [x] Ubuntu - [x] 18.04 - [x] 20.04 - [x] 22.04 - [x] Setup apt repo in an external GitHub repo - [x] Update git repos of subprojects, when a branch was specified as revision - [x] Basic typechecking of arguments (Not every error will be caught) - [x] Add progress bar for setting up the subprojects (Requires upstream work) - [x] Add Windows to CI - [x] Compiles on Windows - [x] Works using CLI - [x] LSP works - [x] Downloading wraps works - [x] Setting up wraps works - [x] wrap-git - [x] wrap-svn/wrap-hg - [x] wrap-file - [x] tar.gz - [x] tar.bz2 - [x] tar.xz - [x] zip - [x] Applying diffs works ## Version 4.0 - [ ] Checking for nested ternaries - [ ] Semantic tokens - [x] Single-line strings - [ ] Multi-line strings - [x] Actions need cleanup - [x] Folding range - [x] Foreach-Loops - [x] Selection-Statements - [x] Automatic update of vscode-meson - [ ] Improve heuristics for subdir etc. - [ ] More Codeactions - [ ] `''.format(x,y,z)` where the arguments are only identifiers, convert to format string - [ ] More tests - [ ] LSP-Tests using pygls - [ ] Other tests using XCTest - [ ] Find declaration - [ ] Find definition - [ ] Document symbols - [ ] Folding ranges - [ ] Formatting - [ ] Highlighting - [ ] Hover - [ ] Inlay hints - [ ] Semantic Tokens - [ ] Completion - [ ] Typeanalyzer ## Version n - [ ] Full typechecking of arguments (Depends on generating of type definitions from JSON) - [ ] Get docs from embedded JSON file, not from the MesonDocs/ module (Currently not possible/very difficult due to SPM being not that capable of embedding a file in a binary) - [ ] Autogenerate type definitions from JSON (Requires upstream work) - [ ] Don't depend on curl/wget CLI tools for downloading wraps - [ ] Maybe contact Jetbrains (See: https://matrix.to/#/!GNNuZCPFOXyoAJPmtC:matrix.org/$Q0nPPHlWA_tSn0R_DuFn49yDmlkTLru7R1QnfnkQSVc?via=matrix.org&via=gnome.org&via=fedora.im) - [ ] Add support for linting/completion of *.wrap files