ale
ale copied to clipboard
Naga / wgsl integration not working
Information
VIM version
NVIM v0.9.4
Build type: Release
LuaJIT 2.1.0-beta3
Operating System: MacOS Ventura 13.5.1
What went wrong
Using Naga for wgsl linting and highlighting doesn't seem to work.
Reproducing the bug
- Install naga via cargo.
- Confirm naga binary is in
$PATH
. - Add
autocmd BufNewFile,BufRead *.wgsl set filetype=wgsl
to vimrc. - Open a wgsl file and run
:ALEInfo
, which seems to show correct information. - However, no errors or syntax highlighting is shown in the wgsl file.
:ALEInfo
Expand
Current Filetype: wgsl Available Linters: ['naga'] Enabled Linters: ['naga'] Ignored Linters: [] Suggested Fixers: 'remove_trailing_lines' - Remove all blank lines at the end of a file. 'trim_whitespace' - Remove all trailing whitespace characters at the end of every line.
Linter Variables: " Press Space to read :help for a setting let g:ale_wgsl_naga_executable = 'naga'
Global Variables: " Press Space to read :help for a setting let g:ale_cache_executable_check_failures = v:null let g:ale_change_sign_column_color = v:null let g:ale_command_wrapper = '' let g:ale_completion_delay = 100 let g:ale_completion_enabled = 0 let g:ale_completion_max_suggestions = 50 let g:ale_disable_lsp = 'auto' let g:ale_echo_cursor = 1 let g:ale_echo_msg_error_str = 'Error' let g:ale_echo_msg_format = '%code: %%s' let g:ale_echo_msg_info_str = 'Info' let g:ale_echo_msg_warning_str = 'Warning' let g:ale_enabled = 1 let g:ale_fix_on_save = 0 let g:ale_fixers = {'svelte': ['prettier'], 'typescriptreact': ['prettier'], 'rust': ['rustfmt'], 'typescript': ['prettier']} let g:ale_history_enabled = 1 let g:ale_info_default_mode = 'preview' let g:ale_history_log_output = 1 let g:ale_keep_list_window_open = 0 let g:ale_lint_delay = 200 let g:ale_lint_on_enter = 1 let g:ale_lint_on_filetype_changed = 1 let g:ale_lint_on_insert_leave = 1 let g:ale_lint_on_save = 1 let g:ale_lint_on_text_changed = 'normal' let g:ale_linter_aliases = {'svelte': ['css', 'javascript']} let g:ale_linters = {'wgsl': ['naga'], 'typescriptreact': ['prettier', 'eslint', 'tsserver'], 'svelte': ['prettier', 'eslint']} let g:ale_linters_explicit = 0 let g:ale_linters_ignore = {} let g:ale_list_vertical = 0 let g:ale_list_window_size = 10 let g:ale_loclist_msg_format = '%code: %%s' let g:ale_max_buffer_history_size = 20 let g:ale_max_signs = v:null let g:ale_maximum_file_size = v:null let g:ale_open_list = 0 let g:ale_pattern_options = v:null let g:ale_pattern_options_enabled = v:null let g:ale_root = {} let g:ale_set_balloons = 0 let g:ale_set_highlights = 1 let g:ale_set_loclist = 1 let g:ale_set_quickfix = 0 let g:ale_set_signs = 1 let g:ale_sign_column_always = v:null let g:ale_sign_error = v:null let g:ale_sign_info = v:null let g:ale_sign_offset = v:null let g:ale_sign_style_error = v:null let g:ale_sign_style_warning = v:null let g:ale_sign_warning = v:null let g:ale_sign_highlight_linenrs = v:null let g:ale_type_map = {} let g:ale_use_neovim_diagnostics_api = 1 let g:ale_use_global_executables = v:null let g:ale_virtualtext_cursor = 0 let g:ale_warn_about_trailing_blank_lines = 1 let g:ale_warn_about_trailing_whitespace = 1
Command History:
(finished - exit code 255) ['/bin/zsh', '-c', '''naga'' --stdin-file-path ''/Users/sjoiner/src/wlife/src/CellShader.wgsl'' < ''/var/folders/yv/28wfhmtj7xz7pddfghh7x2c00000gn/T/nvim.sjoiner/uVjOmF/12/CellShader.wgsl''']
<<<OUTPUT STARTS>>>
^[[0m^[[1m^[[38;5;9merror^[[0m^[[1m: ^[[0m
^[[0m^[[34m┌─^[[0m CellShader.wgsl:33:1
^[[0m^[[34m│^[[0m
^[[0m^[[34m33^[[0m ^[[0m^[[34m│^[[0m ^[[0m^[[31m╭^[[0m ^[[0m^[[31mfn hsl2rgb(hsl: vec3f) -> vec3f {^[[0m
^[[0m^[[34m34^[[0m ^[[0m^[[34m│^[[0m ^[[0m^[[31m│^[[0m ^[[0m^[[31m let c = vec3f(fract(hsl.x), clamp(hsl.yz, vec2f(0), vec2f(1)));^[[0m
^[[0m^[[34m│^[[0m ^[[0m^[[31m│^[[0m ^[[0m^[[31m^^^^^^[[0m ^[[0m^[[31mnaga::Expression [9]^[[0m
^[[0m^[[34m35^[[0m ^[[0m^[[34m│^[[0m ^[[0m^[[31m│^[[0m ^[[0m^[[31m let rgb = clamp(abs((c.x * 6.0 + vec3f(0.0, 4.0, 2.0)) % 6.0 - 3.0) - 1.0, vec3f(0), vec3f(1));^[[0m
^[[0m^[[34m36^[[0m ^[[0m^[[34m│^[[0m ^[[0m^[[31m│^[[0m ^[[0m^[[31m return c.z + c.y * (rgb - 0.5) * (1.0 - abs(2.0 * c.z - 1.0));^[[0m
^[[0m^[[34m│^[[0m ^[[0m^[[31m╰^[[0m^[[0m^[[31m────────────────────────────────────────────────────────────────^ naga::Function [2]^[[0m
Function [2] 'hsl2rgb' is invalid: Expression [9] is invalid Argument [1] to Clamp as expression [6] has an invalid type. <<<OUTPUT ENDS>>>
(finished - exit code 1) ['/bin/zsh', '-c', '''naga'' --stdin-file-path ''/Users/sjoiner/src/wlife/src/CellShader.wgsl'' < ''/var/folders/yv/28wfhmtj7xz7pddfghh7x2c00000gn/T/nvim.sjoiner/uVjOmF/13/CellShader.wgsl''']
<<<OUTPUT STARTS>>> ^[[0m^[[1m^[[38;5;9merror^[[0m^[[1m: no definition in scope for identifier: 'cellx'^[[0m ^[[0m^[[34m┌─^[[0m /Users/sjoiner/src/wlife/src/CellShader.wgsl:25:19 ^[[0m^[[34m│^[[0m ^[[0m^[[34m25^[[0m ^[[0m^[[34m│^[[0m output.cell = ^[[0m^[[31mcellx^[[0m; ^[[0m^[[34m│^[[0m ^[[0m^[[31m^^^^^^[[0m ^[[0m^[[31munknown identifier^[[0m
Could not parse WGSL <<<OUTPUT ENDS>>>
(finished - exit code 1) ['/bin/zsh', '-c', '''naga'' --stdin-file-path ''/Users/sjoiner/src/wlife/src/CellShader.wgsl'' < ''/var/folders/yv/28wfhmtj7xz7pddfghh7x2c00000gn/T/nvim.sjoiner/uVjOmF/14/CellShader.wgsl''']
<<<OUTPUT STARTS>>> ^[[0m^[[1m^[[38;5;9merror^[[0m^[[1m: no definition in scope for identifier: 'cellx'^[[0m ^[[0m^[[34m┌─^[[0m /Users/sjoiner/src/wlife/src/CellShader.wgsl:25:19 ^[[0m^[[34m│^[[0m ^[[0m^[[34m25^[[0m ^[[0m^[[34m│^[[0m output.cell = ^[[0m^[[31mcellx^[[0m; ^[[0m^[[34m│^[[0m ^[[0m^[[31m^^^^^^[[0m ^[[0m^[[31munknown identifier^[[0m
Could not parse WGSL <<<OUTPUT ENDS>>>
(finished - exit code 255) ['/bin/zsh', '-c', '''naga'' --stdin-file-path ''/Users/sjoiner/src/wlife/src/CellShader.wgsl'' < ''/var/folders/yv/28wfhmtj7xz7pddfghh7x2c00000gn/T/nvim.sjoiner/uVjOmF/15/CellShader.wgsl''']
<<<OUTPUT STARTS>>>
^[[0m^[[1m^[[38;5;9merror^[[0m^[[1m: ^[[0m
^[[0m^[[34m┌─^[[0m CellShader.wgsl:33:1
^[[0m^[[34m│^[[0m
^[[0m^[[34m33^[[0m ^[[0m^[[34m│^[[0m ^[[0m^[[31m╭^[[0m ^[[0m^[[31mfn hsl2rgb(hsl: vec3f) -> vec3f {^[[0m
^[[0m^[[34m34^[[0m ^[[0m^[[34m│^[[0m ^[[0m^[[31m│^[[0m ^[[0m^[[31m let c = vec3f(fract(hsl.x), clamp(hsl.yz, vec2f(0), vec2f(1)));^[[0m
^[[0m^[[34m│^[[0m ^[[0m^[[31m│^[[0m ^[[0m^[[31m^^^^^^[[0m ^[[0m^[[31mnaga::Expression [9]^[[0m
^[[0m^[[34m35^[[0m ^[[0m^[[34m│^[[0m ^[[0m^[[31m│^[[0m ^[[0m^[[31m let rgb = clamp(abs((c.x * 6.0 + vec3f(0.0, 4.0, 2.0)) % 6.0 - 3.0) - 1.0, vec3f(0), vec3f(1));^[[0m
^[[0m^[[34m36^[[0m ^[[0m^[[34m│^[[0m ^[[0m^[[31m│^[[0m ^[[0m^[[31m return c.z + c.y * (rgb - 0.5) * (1.0 - abs(2.0 * c.z - 1.0));^[[0m
^[[0m^[[34m│^[[0m ^[[0m^[[31m╰^[[0m^[[0m^[[31m────────────────────────────────────────────────────────────────^ naga::Function [2]^[[0m
Function [2] 'hsl2rgb' is invalid: Expression [9] is invalid Argument [1] to Clamp as expression [6] has an invalid type. <<<OUTPUT ENDS>>>
(finished - exit code 255) ['/bin/zsh', '-c', '''naga'' --stdin-file-path ''/Users/sjoiner/src/wlife/src/CellShader.wgsl'' < ''/var/folders/yv/28wfhmtj7xz7pddfghh7x2c00000gn/T/nvim.sjoiner/uVjOmF/16/CellShader.wgsl''']
<<<OUTPUT STARTS>>>
^[[0m^[[1m^[[38;5;9merror^[[0m^[[1m: ^[[0m
^[[0m^[[34m┌─^[[0m CellShader.wgsl:33:1
^[[0m^[[34m│^[[0m
^[[0m^[[34m33^[[0m ^[[0m^[[34m│^[[0m ^[[0m^[[31m╭^[[0m ^[[0m^[[31mfn hsl2rgb(hsl: vec3f) -> vec3f {^[[0m
^[[0m^[[34m34^[[0m ^[[0m^[[34m│^[[0m ^[[0m^[[31m│^[[0m ^[[0m^[[31m let c = vec3f(fract(hsl.x), clamp(hsl.yz, vec2f(0), vec2f(1)));^[[0m
^[[0m^[[34m│^[[0m ^[[0m^[[31m│^[[0m ^[[0m^[[31m^^^^^^[[0m ^[[0m^[[31mnaga::Expression [9]^[[0m
^[[0m^[[34m35^[[0m ^[[0m^[[34m│^[[0m ^[[0m^[[31m│^[[0m ^[[0m^[[31m let rgb = clamp(abs((c.x * 6.0 + vec3f(0.0, 4.0, 2.0)) % 6.0 - 3.0) - 1.0, vec3f(0), vec3f(1));^[[0m
^[[0m^[[34m36^[[0m ^[[0m^[[34m│^[[0m ^[[0m^[[31m│^[[0m ^[[0m^[[31m return c.z + c.y * (rgb - 0.5) * (1.0 - abs(2.0 * c.z - 1.0));^[[0m
^[[0m^[[34m│^[[0m ^[[0m^[[31m╰^[[0m^[[0m^[[31m────────────────────────────────────────────────────────────────^ naga::Function [2]^[[0m
Function [2] 'hsl2rgb' is invalid: Expression [9] is invalid Argument [1] to Clamp as expression [6] has an invalid type. <<<OUTPUT ENDS>>>