Skip to content

Commit 551a4c7

Browse files
author
zhaoge
committed
feat: support #{} snippet usage
1 parent d9ebab6 commit 551a4c7

12 files changed

Lines changed: 46 additions & 163 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "monaco-sql-languages",
3-
"version": "0.12.2",
3+
"version": "0.12.3-beta.18",
44
"description": "SQL languages for the Monaco Editor, based on monaco-languages.",
55
"scripts": {
66
"build": "mrmdir ./esm && tsc -p ./tsconfig.esm.json",

src/languages/flink/flink.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,7 @@ export const language = <languages.IMonarchLanguage>{
478478
{ include: '@comments' },
479479
{ include: '@whitespace' },
480480
{ include: '@pseudoColumns' },
481+
{ include: '@customParams' },
481482
{ include: '@numbers' },
482483
{ include: '@strings' },
483484
{ include: '@complexIdentifiers' },
@@ -523,6 +524,11 @@ export const language = <languages.IMonarchLanguage>{
523524
}
524525
]
525526
],
527+
customParams: [
528+
[/\${[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
529+
[/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
530+
[/#\{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE]
531+
],
526532
numbers: [
527533
[/0[xX][0-9a-fA-F]*/, TokenClassConsts.NUMBER_HEX],
528534
[/[$][+-]*\d*(\.\d*)?/, TokenClassConsts.NUMBER],

src/languages/hive/hive.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,8 @@ export const language = <languages.IMonarchLanguage>{
557557
],
558558
customParams: [
559559
[/\${[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
560-
[/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE]
560+
[/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
561+
[/#\{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE]
561562
],
562563
numbers: [
563564
[/0[xX][0-9a-fA-F]*/, TokenClassConsts.NUMBER_HEX],

src/languages/impala/impala.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,8 @@ export const language = <languages.IMonarchLanguage>{
505505
pseudoColumns: [],
506506
customParams: [
507507
[/\${[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
508-
[/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE]
508+
[/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
509+
[/#\{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE]
509510
],
510511
numbers: [
511512
[/0[xX][0-9a-fA-F]*/, TokenClassConsts.NUMBER_HEX],

src/languages/mysql/mysql.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -956,7 +956,8 @@ export const language = <languages.IMonarchLanguage>{
956956
],
957957
customParams: [
958958
[/\${[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
959-
[/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE]
959+
[/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
960+
[/#\{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE]
960961
],
961962
numbers: [
962963
[/0[xX][0-9a-fA-F]*/, TokenClassConsts.NUMBER_HEX],

src/languages/pgsql/pgsql.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1015,7 +1015,8 @@ export const language = <languages.IMonarchLanguage>{
10151015
],
10161016
customParams: [
10171017
[/\${[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
1018-
[/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE]
1018+
[/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
1019+
[/#\{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE]
10191020
],
10201021
numbers: [
10211022
[/0[xX][0-9a-fA-F]*/, TokenClassConsts.NUMBER_HEX],

src/languages/spark/spark.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,8 @@ export const language = <languages.IMonarchLanguage>{
741741
],
742742
customParams: [
743743
[/\${[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
744-
[/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE]
744+
[/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
745+
[/#\{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE]
745746
],
746747
numbers: [
747748
// https://spark.apache.org/docs/latest/sql-ref-literals.html#numeric-literal

src/languages/trino/trino.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,8 @@ export const language = <languages.IMonarchLanguage>{
677677
],
678678
customParams: [
679679
[/\${[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
680-
[/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE]
680+
[/\@\@{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE],
681+
[/#\{[A-Za-z0-9._-]*}/, TokenClassConsts.VARIABLE]
681682
],
682683
numbers: [
683684
[/[$][+-]*\d*(\.\d*)?/, TokenClassConsts.NUMBER],

src/theme/vs-plus/light.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export const lightThemeData: editor.IStandaloneThemeData = {
3232
{ token: postfixTokenClass(TokenClassConsts.STRING), foreground: 'a31515' },
3333
{ token: postfixTokenClass(TokenClassConsts.STRING_ESCAPE), foreground: 'a31515' },
3434
{ token: postfixTokenClass(TokenClassConsts.TYPE), foreground: '267f99' },
35-
{ token: postfixTokenClass(TokenClassConsts.VARIABLE), foreground: '4fc1ff' }
35+
{ token: postfixTokenClass(TokenClassConsts.VARIABLE), foreground: '00ad84' }
3636
],
3737
colors: {}
3838
};

website/src/languages/index.ts

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,37 +6,44 @@ import { setupLanguageFeatures, LanguageIdEnum } from 'monaco-sql-languages/esm/
66
import { completionService } from './helpers/completionService';
77

88
/**
9-
* replace dtstack custom params, eg: @@{componentParams}, ${taskCustomParams}
9+
* replace dtstack custom params, eg: @@{componentParams}, ${taskCustomParams}, #{taskCustomParams}
1010
* @param code editor value
1111
* @returns replaced string
1212
*/
1313
const preprocessCode = (code: string): string => {
1414
const regex1 = /@@{[A-Za-z0-9._-]*}/g;
1515
const regex2 = /\${[A-Za-z0-9._-]*}/g;
16+
const regex3 = /#\{[A-Za-z0-9._-]*}/g;
1617
let result = code;
1718

1819
if (regex1.test(code)) {
1920
result = result.replace(regex1, (str) => {
2021
return str.replace(/@|{|}|\.|-/g, '_');
2122
});
2223
}
23-
if (regex2.test(code)) {
24+
if (regex2.test(result)) {
2425
result = result.replace(regex2, (str) => {
2526
return str.replace(/\$|{|}|\.|-/g, '_');
2627
});
2728
}
29+
if (regex3.test(result)) {
30+
result = result.replace(regex3, (str) => {
31+
return str.replace(/#|{|}|\.|-/g, '_');
32+
});
33+
}
2834
return result;
2935
};
3036

3137
/**
32-
* replace dtstack custom grammar, eg: @@{componentParams}, ${taskCustomParams}
38+
* replace dtstack custom grammar, eg: @@{componentParams}, ${taskCustomParams}, #{taskCustomParams}
3339
* @param code editor value
3440
* @param mark some sql grammar need special mark to replace the beginning and the end
3541
* @returns replaced string
3642
*/
3743
const preprocessCodeHive = (code: string, mark?: string): string => {
3844
const regex1 = /@@{[A-Za-z0-9._-]*}/g;
3945
const regex2 = /\${[A-Za-z0-9._-]*}/g;
46+
const regex3 = /#\{[A-Za-z0-9._-]*}/g;
4047
let result = code;
4148

4249
if (regex1.test(code)) {
@@ -50,14 +57,22 @@ const preprocessCodeHive = (code: string, mark?: string): string => {
5057
return str.replace(/@|{|}|\.|-/g, '_');
5158
});
5259
}
53-
if (regex2.test(code)) {
60+
if (regex2.test(result)) {
5461
result = result.replace(regex2, (str) => {
5562
if (mark) {
5663
return str.replace(/\$|}/g, mark).replace(/{|\.|-/g, '_');
5764
}
5865
return str.replace(/\$|{|}|\.|-/g, '_');
5966
});
6067
}
68+
if (regex3.test(result)) {
69+
result = result.replace(regex3, (str) => {
70+
if (mark) {
71+
return str.replace(/#|}/g, mark).replace(/{|\.|-/g, '_');
72+
}
73+
return str.replace(/#|{|}|\.|-/g, '_');
74+
});
75+
}
6176
return result;
6277
};
6378

0 commit comments

Comments
 (0)