triangle.frag.glsl: https://www.shadertoy.com/view/DtcyDr
sphere.frag.glsl: https://www.shadertoy.com/view/DltcW8
caterpillar.frag.glsl: https://www.shadertoy.com/view/DlycWw
neovim + treesitter + glslls (in nixpkgs)
To make the code valid in lsp, I added all the shader inputs in sphere glsl file.