mirror of
https://github.com/Strum355/mcshader-lsp.git
synced 2025-08-04 00:49:17 +00:00
Proper errors if glslangValidator isnt found, woop
This commit is contained in:
parent
44ee663d06
commit
ef643d8cdb
4 changed files with 14 additions and 13 deletions
|
@ -1,11 +1,11 @@
|
|||
import { join } from 'path'
|
||||
|
||||
export class Config {
|
||||
public readonly minecraftPath: string
|
||||
public readonly glslangPath: string
|
||||
public minecraftPath: string
|
||||
public glslangValidatorPath: string
|
||||
|
||||
constructor(mcPath: string, glslangPath: string) {
|
||||
this.minecraftPath = join(mcPath, 'shaderpacks')
|
||||
this.glslangPath = glslangPath || 'glslangValidator'
|
||||
this.glslangValidatorPath = glslangPath || 'glslangValidator'
|
||||
}
|
||||
}
|
|
@ -75,8 +75,7 @@ export function preprocess(document: TextDocument) {
|
|||
}
|
||||
|
||||
function lint(text: string, uri: string) {
|
||||
const child = exec(`${conf.glslangPath} --stdin -S frag`, (error, out, err) => {
|
||||
if (error) return
|
||||
const child = exec(`${conf.glslangValidatorPath} --stdin -S frag`, (error, out, err) => {
|
||||
const diagnostics: Diagnostic[] = []
|
||||
const matches = filterMatches(out) as RegExpMatchArray[]
|
||||
matches.forEach((match) => {
|
||||
|
|
|
@ -2,7 +2,7 @@ import * as vsclang from 'vscode-languageserver'
|
|||
import { Config } from './config'
|
||||
import { completions } from './completionProvider';
|
||||
import { preprocess } from './linter';
|
||||
import { stat } from 'fs';
|
||||
import { exec } from 'child_process';
|
||||
|
||||
export const connection = vsclang.createConnection(new vsclang.IPCMessageReader(process), new vsclang.IPCMessageWriter(process));
|
||||
|
||||
|
@ -32,17 +32,18 @@ documents.onDidSave((event) => {
|
|||
|
||||
/* documents.onDidChangeContent((change) => {
|
||||
preprocess(change.document);
|
||||
});
|
||||
*/
|
||||
});*/
|
||||
|
||||
connection.onDidChangeConfiguration((change) => {
|
||||
const temp = change.settings.mcglsl as Config
|
||||
conf = new Config(temp.minecraftPath, temp.glslangPath)
|
||||
stat(conf.glslangPath, (error) => {
|
||||
if (error) {
|
||||
connection.window.showErrorMessage('glslangValidator not found')
|
||||
conf = new Config(temp.minecraftPath, temp.glslangValidatorPath)
|
||||
exec(conf.glslangValidatorPath, (error) => {
|
||||
if (error['code'] !== 1) {
|
||||
connection.window.showErrorMessage(`[mc-glsl] glslangValidator not found at: ${conf.glslangValidatorPath}`)
|
||||
return
|
||||
}
|
||||
documents.all().forEach(preprocess);
|
||||
})
|
||||
documents.all().forEach(preprocess);
|
||||
});
|
||||
|
||||
connection.onCompletion((textDocumentPosition: vsclang.TextDocumentPositionParams): vsclang.CompletionItem[] => {
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
"semicolon": false,
|
||||
"ordered-imports": false,
|
||||
"object-literal-sort-keys": false,
|
||||
"no-string-literal": false,
|
||||
"interface-name": false,
|
||||
"indent": [true, "spaces", 2],
|
||||
"arrow-parens": false,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue