Skip to content

Commit bd5d40e

Browse files
committed
[Qute] Add language support for qute
Fixes #178 Signed-off-by: azerr <azerr@redhat.com>
1 parent 5874a71 commit bd5d40e

File tree

8 files changed

+474
-7
lines changed

8 files changed

+474
-7
lines changed

gulpfile.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ const quarkusServerExt = 'com.redhat.quarkus.ls';
2121
const quarkusExtensionDir = '../quarkus-ls/quarkus.jdt.ext';
2222
const quarkusExtension = 'com.redhat.microprofile.jdt.quarkus';
2323

24+
const quteServerDir = '../quarkus-ls/qute.ls/com.redhat.qute.ls'
25+
const quteServer = 'com.redhat.qute.ls-uber.jar';
26+
27+
const quteExtensionDir = '../quarkus-ls/qute.jdt';
28+
const quteExtension = 'com.redhat.qute.jdt';
29+
2430
gulp.task('buildServer', (done) => {
2531
cp.execSync(mvnw() + ' clean verify -DskipTests', { cwd: quarkusServerExtDir , stdio: 'inherit' });
2632
gulp.src(quarkusServerExtDir + '/target/' + quarkusServerExt + '-!(*sources).jar')
@@ -41,7 +47,22 @@ gulp.task('buildExtension', (done) => {
4147
done();
4248
});
4349

44-
gulp.task('build', gulp.series('buildServer', 'buildExtension'));
50+
gulp.task('buildQuteServer', (done) => {
51+
cp.execSync(mvnw() + ' clean install -DskipTests', { cwd: quteServerDir , stdio: 'inherit' });
52+
gulp.src(quteServerDir + '/target/' + quteServer)
53+
.pipe(gulp.dest('./server'));
54+
done();
55+
});
56+
57+
gulp.task('buildQuteExtension', (done) => {
58+
cp.execSync(mvnw() + ' -pl "' + quteExtension + '" clean verify -DskipTests', { cwd: quteExtensionDir, stdio: 'inherit' });
59+
gulp.src(quteExtensionDir + '/' + quteExtension + '/target/' + quteExtension + '-!(*sources).jar')
60+
.pipe(rename(quteExtension + '.jar'))
61+
.pipe(gulp.dest('./jars'));
62+
done();
63+
});
64+
65+
gulp.task('build', gulp.series('buildServer', 'buildExtension','buildQuteServer', 'buildQuteExtension'));
4566

4667
function mvnw() {
4768
return isWin() ? 'mvnw.cmd' : './mvnw';

language-support/qute/qute.tmLanguage.json

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44
{
55
"include": "#comment"
66
},
7+
{
8+
"include": "#cdata"
9+
},
10+
{
11+
"include": "#cdata_old"
12+
},
713
{
814
"include": "#parameter_declaration"
915
},
@@ -40,6 +46,36 @@
4046
"end": "!}",
4147
"name": "comment.block.qute"
4248
},
49+
"cdata":{
50+
"begin": "{\\|",
51+
"beginCaptures": {
52+
"0": {
53+
"name": "punctuation.definition.string.begin.qute"
54+
}
55+
},
56+
"end": "\\|}",
57+
"endCaptures": {
58+
"0": {
59+
"name": "punctuation.definition.string.end.qute"
60+
}
61+
},
62+
"name": "string.unquoted.cdata.qute"
63+
},
64+
"cdata_old":{
65+
"begin": "{\\[",
66+
"beginCaptures": {
67+
"0": {
68+
"name": "punctuation.definition.string.begin.qute"
69+
}
70+
},
71+
"end": "\\]}",
72+
"endCaptures": {
73+
"0": {
74+
"name": "punctuation.definition.string.end.qute"
75+
}
76+
},
77+
"name": "string.unquoted.cdata.qute"
78+
},
4379
"section_start_tag": {
4480
"begin": "({)(#)(else\\sif|\\w+(\\.\\w+)*)",
4581
"end": "(\\/)?((?<![\\\\])})",
@@ -474,4 +510,4 @@
474510
},
475511
"scopeName": "grammar.qute",
476512
"uuid": "7ba10786-68d6-4715-9a3e-bcbbda9854a1"
477-
}
513+
}

package-lock.json

Lines changed: 69 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,13 @@
5757
],
5858
"contributes": {
5959
"javaExtensions": [
60-
"./jars/com.redhat.microprofile.jdt.quarkus.jar"
60+
"./jars/com.redhat.microprofile.jdt.quarkus.jar",
61+
"./jars/com.redhat.qute.jdt.jar"
6162
],
6263
"microprofile": {
6364
"jarExtensions": [
64-
"./server/com.redhat.quarkus.ls.jar"
65+
"./server/com.redhat.quarkus.ls.jar",
66+
"./server/com.redhat.qute.ls.jar"
6567
],
6668
"documentSelector": [
6769
{
@@ -206,6 +208,12 @@
206208
"default": "forceQuarkus",
207209
"description": "Action performed when detected Quarkus properties have an incorrect language.",
208210
"scope": "window"
211+
},
212+
"quarkus.tools.qute.validation.enabled": {
213+
"type": "boolean",
214+
"default": true,
215+
"markdownDescription": "Enable/disable all Qute validation. Default is `true`.",
216+
"scope": "window"
209217
}
210218
}
211219
},
@@ -290,6 +298,8 @@
290298
"build": "./node_modules/.bin/gulp build",
291299
"build-server": "./node_modules/.bin/gulp buildServer",
292300
"build-ext": "./node_modules/.bin/gulp buildExtension",
301+
"build-qute-server": "./node_modules/.bin/gulp buildQuteServer",
302+
"build-qute-ext": "./node_modules/.bin/gulp buildQuteExtension",
293303
"test-ui": "rm -rf out && npm run test-compile && npm run test-ui-run",
294304
"test-ui-run": "extest setup-and-run 'out/test/vscodeUiTest/suite/*.js' -u -e 'out/test/vscodeUiTest/extensions' -o src/test/vscodeUiTest/settings.json",
295305
"test-all": "npm test && npm run test-ui-run"
@@ -334,13 +344,15 @@
334344
"@redhat-developer/vscode-redhat-telemetry": "^0.4.2",
335345
"ejs": "^2.7.1",
336346
"expand-home-dir": "0.0.3",
347+
"find-java-home": "^1.2.2",
337348
"find-up": "^4.1.0",
338349
"fs-extra": "^8.0.1",
339350
"glob": "^7.1.4",
340351
"js-yaml": "^4.0.0",
341352
"lodash": "^4.17.21",
342353
"request": "^2.88.0",
343354
"request-promise": "^4.2.4",
355+
"vscode-languageclient": "^7.0.0",
344356
"which": "^2.0.2",
345357
"yauzl": "^2.10.0"
346358
}

src/extension.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { ProjectLabelInfo } from './definitions/ProjectLabelInfo';
2020
import { PropertiesLanguageMismatch, QuarkusConfig } from './QuarkusConfig';
2121
import { QuarkusContext } from './QuarkusContext';
2222
import quarkusProjectListener from './QuarkusProjectListener';
23+
import { connectToQuteLS } from './qute/languageServer/client';
2324
import { terminalCommandRunner } from './terminal/terminalCommandRunner';
2425
import { initTelemetryService } from './utils/telemetryUtils';
2526
import { WelcomeWebview } from './webviews/WelcomeWebview';
@@ -64,6 +65,14 @@ export async function activate(context: ExtensionContext) {
6465
);
6566

6667
registerVSCodeCommands(context);
68+
69+
connectToQuteLS(context).catch((error) => {
70+
window.showErrorMessage(error.message, error.label).then((selection) => {
71+
if (error.label && error.label === selection && error.openUrl) {
72+
commands.executeCommand('vscode.open', error.openUrl);
73+
}
74+
});
75+
});
6776
}
6877

6978
export function deactivate() {

0 commit comments

Comments
 (0)