mirror of
https://github.com/Nexoniarz/Finch.git
synced 2026-11-03 08:54:25 +00:00
Hover, go to definition, completion (after a dot too: fields, methods, a module's names, an enum's variants, array/text/map methods), signature help, the outline and errors while typing -- everything the C++ one did, and the same tests/lsp_test.py passes against it. It doesn't type-check by itself: for every change it runs finch index on the editor's text (--overlay says which file the text stands in for) and reads what the compiler learned about every name, which is also what the compiler's own error messages are made of. Half-typed code keeps using the last version that compiled. src/docs.fch is the one description of the built-ins that hover and completion share. tests/run.sh runs the LSP test too. 107 passed.
18 lines
507 B
Nix
18 lines
507 B
Nix
{ pkgs ? import <nixpkgs> {} }:
|
|
|
|
pkgs.mkShell {
|
|
packages = with pkgs; [
|
|
# building Finch (the clang wrapper first, so `clang` finds the system headers)
|
|
llvmPackages.clang
|
|
llvmPackages.libclang # reads C headers for `import "stdio.h"`
|
|
pkg-config # finds the right flags for `link "..."`
|
|
python3 # tests/lsp_test.py
|
|
|
|
# for the graphics examples (window, opengl, raylib, vulkan)
|
|
glfw
|
|
libGL
|
|
raylib
|
|
vulkan-headers
|
|
vulkan-loader
|
|
];
|
|
}
|