Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README-zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ Monaco SQL Languages 是一个基于 Monaco Editor 的 SQL 语言项目,从 [m
- Trino (Presto)
- PostgreSQL
- Impala
- GenericSQL

<br/>

Expand Down Expand Up @@ -72,6 +73,7 @@ npm install monaco-sql-languages
import 'monaco-sql-languages/esm/languages/trino/trino.contribution';
import 'monaco-sql-languages/esm/languages/pgsql/pgsql.contribution';
import 'monaco-sql-languages/esm/languages/impala/impala.contribution';
import 'monaco-sql-languages/esm/languages/generic/generic.contribution';

// 或者你可以通过下面的方式一次性导入所有的语言功能
// import 'monaco-sql-languages/esm/all.contributions';
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ This project is based on the SQL language project of Monaco Editor, which was fo
- Trino (Presto)
- PostgreSQL
- Impala
- GenericSQL

<br/>

Expand Down Expand Up @@ -71,6 +72,7 @@ npm install monaco-sql-languages
import 'monaco-sql-languages/esm/languages/trino/trino.contribution';
import 'monaco-sql-languages/esm/languages/pgsql/pgsql.contribution';
import 'monaco-sql-languages/esm/languages/impala/impala.contribution';
import 'monaco-sql-languages/esm/languages/generic/generic.contribution';

// Or you can import all language contributions at once.
// import 'monaco-sql-languages/esm/all.contributions';
Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@
"postgresql",
"flink",
"trino",
"impala"
"impala",
"generic"
],
"repository": {
"type": "git",
Expand Down Expand Up @@ -84,6 +85,6 @@
]
},
"dependencies": {
"dt-sql-parser": "4.4.2"
"dt-sql-parser": "4.5.0-beta.2"
}
}
10 changes: 5 additions & 5 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions src/all.contributions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ import './languages/trino/trino.contribution';
import './languages/mysql/mysql.contribution';
import './languages/pgsql/pgsql.contribution';
import './languages/impala/impala.contribution';
import './languages/generic/generic.contribution';
3 changes: 2 additions & 1 deletion src/common/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,6 @@ export enum LanguageIdEnum {
PG = 'pgsql',
SPARK = 'sparksql',
TRINO = 'trinosql',
IMPALA = 'impalasql'
IMPALA = 'impalasql',
GENERIC = 'genericsql'
}
4 changes: 3 additions & 1 deletion src/languageFeatures.ts
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,9 @@ export class DefinitionAdapter<T extends BaseSQLWorker> implements languages.Def
startIndex: -1,
endIndex: -1,
startColumn: -1,
endColumn: -1
endColumn: -1,
startTokenIndex: -1,
endTokenIndex: -1
};
const curEntity = entities?.find((entity: EntityContext) => {
const entityPosition = entity.position;
Expand Down
18 changes: 18 additions & 0 deletions src/languages/generic/generic.contribution.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { registerLanguage } from '../../_.contribution';
import { LanguageIdEnum } from '../../common/constants';
import { setupLanguageFeatures } from '../../setupLanguageFeatures';

registerLanguage({
id: LanguageIdEnum.GENERIC,
extensions: ['.genericsql'],
aliases: ['GenericSQL', 'generic', 'Generic'],
loader: () => import('./generic')
});

setupLanguageFeatures(LanguageIdEnum.GENERIC, {
completionItems: true,
diagnostics: false,
references: false,
definitions: false,
hover: false
});
76 changes: 76 additions & 0 deletions src/languages/generic/generic.snippet.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
import type { CompletionSnippetOption } from 'src/monaco.contribution';

export const genericSnippets: CompletionSnippetOption[] = [
{
label: 'select',
prefix: 'SELECT',
body: ['SELECT ${2:column1}, ${3:column2} FROM ${1:table_name};\n$4']
},
{
label: 'select-join',
prefix: 'SELECT-JOIN',
body: [
'SELECT ${8:column1} FROM ${1:table_name1} ${2:t1}',
'${3:LEFT} JOIN ${4:table_name2} ${5:t2} ON ${2:t1}.${6:column1} = ${5:t2}.${7:column2};\n$9'
]
},
{
label: 'select-order-by',
prefix: 'SELECT-ORDER-BY',
body: [
'SELECT ${2:column1}, ${3:column2} FROM ${1:table_name} ORDER BY ${4:column1} ${5:desc};\n$6'
]
},
{
label: 'select-group-by',
prefix: 'SELECT-GROUP-BY',
body: ['SELECT ${2:column1}, COUNT(*) FROM ${1:table_name} GROUP BY ${2:column1};\n$3']
},
{
label: 'insert',
prefix: 'INSERT-INTO',
body: [
'INSERT INTO ${1:table_name} (${2:column1}, ${3:column2})',
'SELECT ${4:column1}, ${5:column2} FROM ${6:source_table};\n$7'
]
},
{
label: 'update',
prefix: 'UPDATE',
body: [
'UPDATE ${1:table_name}',
'SET ${2:column1} = ${3:value1}',
'WHERE ${4:column2} = ${5:value2};\n$6'
]
},
{
label: 'delete',
prefix: 'DELETE',
body: ['DELETE FROM ${1:table_name}', 'WHERE ${2:column1} = ${3:value1};\n$4']
},
{
label: 'create-table',
prefix: 'CREATE-TABLE',
body: [
'CREATE TABLE IF NOT EXISTS ${1:table_name} (',
'\t${2:column1} ${3:INT} PRIMARY KEY,',
'\t${4:column2} ${5:VARCHAR(100)} NOT NULL',
');\n$6'
]
},
{
label: 'alter-table-add',
prefix: 'ALTER-TABLE-ADD',
body: ['ALTER TABLE ${1:table_name} ADD COLUMN ${2:column_name} ${3:INT};\n$4']
},
{
label: 'alter-table-drop',
prefix: 'ALTER-TABLE-DROP',
body: ['ALTER TABLE ${1:table_name} DROP COLUMN ${2:column_name};\n$3']
},
{
label: 'drop-table',
prefix: 'DROP-TABLE',
body: ['DROP TABLE IF EXISTS ${1:table_name};\n$2']
}
];
Loading
Loading