Before: runtime ale_linters/glsl/glslang.vim Execute(The glsl glslang handler should parse lines correctly): AssertEqual \ [ \ { \ 'lnum': 4, \ 'col': 0, \ 'type': 'E', \ 'text': '''gl_ModelViewProjectionMatrix'' : undeclared identifier', \ }, \ { \ 'lnum': 121, \ 'col': 0, \ 'type': 'W', \ 'text': '''switch'' : last case/default label not followed by statements', \ }, \ ], \ ale_linters#glsl#glslang#Handle(bufnr(''), [ \ 'ERROR: 0:4: ''gl_ModelViewProjectionMatrix'' : undeclared identifier', \ 'WARNING: 0:121: ''switch'' : last case/default label not followed by statements', \ 'ERROR: 2 compilation errors. No code generated.', \ ]) Execute(The glsl glslang handler should parse lines with options -V or -G correctly): AssertEqual \ [ \ { \ 'lnum': 7, \ 'col': 0, \ 'type': 'E', \ 'text': '''non-opaque uniforms outside a block'' : not allowed when using GLSL for Vulkan', \ }, \ { \ 'lnum': 14, \ 'col': 0, \ 'type': 'W', \ 'text': '''__shininess'' : identifiers containing consecutive underscores ("__") are reserved', \ }, \ ], \ ale_linters#glsl#glslang#Handle(bufnr(''), [ \ 'shader.vert', \ 'ERROR: shader.vert:7: ''non-opaque uniforms outside a block'' : not allowed when using GLSL for Vulkan', \ 'WARNING: shader.vert:14: ''__shininess'' : identifiers containing consecutive underscores ("__") are reserved', \ 'ERROR: 1 compilation errors. No code generated.', \ 'SPIR-V is not generated for failed compile or link', \ ])