nolanderc / glsl_analyzer

Language server for GLSL (autocomplete, goto-definition, formatter, and more)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

glsl_analyzer

Language server for GLSL (OpenGL Shading Language).

Features

  • Completion
    • User-defined variables/functions.
    • Built-in types (e.g., vecN, matNxM, texture2D, etc.)
    • Built-in functions (e.g., length, imageLoad, packUnorm4x8)
    • Includes all extensions
    • Fields
  • Goto Definition
  • Inline hover documentation for all builtin and extension functions/variables
  • Support for #include
  • Formatter

Screenshots

Completion

completion

Formatting

formatting

Goto-Definition

goto definition

In the pipeline

  • Support for refactors (renaming)

Installation

We provide precompiled binaries for Linux, MacOS and Windows on the Releases page. Make sure to copy it somewhere under your PATH environment variable (e.g. ~/.local/bin on Linux).

Building from Source

zig build install -Doptimize=ReleaseSafe --prefix ~/.local/

Tested using zig 0.12.0-dev.629+1606717b5.

Usage

By default glsl_analyzer communicates over stdin/stdout:

glsl_analyzer

However, you can configure it to use a specific port (TCP) using the following command:

glsl_analyzer --port <PORT>

Neovim

nvim-lspconfig comes with support for glsl_analyzer. Simply add the following to your lua config:

require'lspconfig'.glsl_analyzer.setup{}

Visual Studio Code

Install the glsl-analyzer extension from the marketplace. It will automatically download the latest precompiled binary for your platform.

About

Language server for GLSL (autocomplete, goto-definition, formatter, and more)

License:GNU General Public License v3.0


Languages

Language:Zig 77.1%Language:Python 19.0%Language:GLSL 3.0%Language:Just 0.5%Language:JavaScript 0.2%Language:Shell 0.2%