dense-analysis / dense-analysis/ale
Naga / wgsl integration not working
- Dominant language
- Vim Script
- Stars
- 14k
- Forks
- 1.5k
- Avg merge
- 17h 49m
- Merged PRs (30d)
- 1
Description
## 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
1. Install naga via cargo.
2. Confirm naga binary is in `$PATH`.
3. Add `autocmd BufNewFile,BufRead *.wgsl set filetype=wgsl` to vimrc.
4. Open a wgsl file and run `:ALEInfo`, which seems to show correct information.
5. 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''']
<<>>
^[[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.
<<>>
(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''']
<<>>
^[[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
<<>>
(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''']
<<>>
^[[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
<<>>
(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''']
<<>>
^[[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.
<<>>
(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''']
<<>>
^[[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.
<<>>
Contributor guide
Assessment
This issue has not been assessed yet.