Skip to content

Commit 44c23cb

Browse files
authored
doc: update docs (#115)
* docs: update website * docs: update readme * docs: update integrate docs * feat: improve lanuguageIdEnum * docs: update website * docs: change indent
1 parent f6b34e5 commit 44c23cb

File tree

12 files changed

+309
-310
lines changed

12 files changed

+309
-310
lines changed

.editorconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ indent_style = tab
99
indent_size = 4
1010
trim_trailing_whitespace = true
1111

12+
[{*.md}]
13+
indent_style = space
14+
indent_size = 4
15+
1216
# The indent size used in the `package.json` file cannot be changed
1317
# https://github.com/npm/npm/pull/3180#issuecomment-16336516
1418
[{*.yml,*.yaml,package.json}]

README-zh_CN.md

Lines changed: 49 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -9,42 +9,35 @@
99

1010
[English](./README.md) | 简体中文
1111

12-
Monaco SQL Languages 是一个基于 Monaco Editor 的 SQL 语言项目,从 [monaco-languages](https://github.com/microsoft/monaco-languages) fork 而来。
12+
Monaco SQL Languages 是一个基于 Monaco Editor 的 SQL 语言项目,从 [monaco-languages](https://github.com/microsoft/monaco-languages) fork 而来。不同的是,Monaco SQL Languages 支持了各种大数据领域的 SQL 语言以及相应的高级语言功能。
1313

14-
不同的是,Monaco SQL Languages 集成了各种大数据领域的 SQL 语言功能,比如 FLinkSQL, SparkSQL, HiveSQL 等等。另外,Monaco SQL Languages 还通过集成 [dt-sql-parser](https://github.com/DTStack/dt-sql-parser) 提供了**SQL 语法校验****自动补全功能**
14+
<br/>
15+
16+
## 功能亮点
17+
- 代码高亮
18+
- 语法校验
19+
- 自动补全
20+
21+
> [dt-sql-parser](https://github.com/DTStack/dt-sql-parser) 提供语法解析功能。
1522
1623
<br/>
1724

1825
## 在线预览
19-
[molecule](https://github.com/DTStack/molecule) 提供 IDE UI 支持。
26+
<https://dtstack.github.io/monaco-sql-languages/>
2027

21-
<https://dtstack.github.io/monaco-sql-languages/>
28+
> [molecule](https://github.com/DTStack/molecule) 提供 IDE UI 支持。
2229
2330
<br/>
2431

2532
## 已支持的 SQL 语言类型
2633

2734
- MySQL
28-
- FlinkSQL
29-
- SparkSQL
30-
- HiveSQL
31-
- TrinoSQL (PrestoSQL)
35+
- Flink
36+
- Spark
37+
- Hive
38+
- Trino (Presto)
3239
- PostgreSQL
33-
- Impala SQL
34-
35-
**自动补全功能支持**
36-
37-
| SQL 类型 | 语言 ID | 自动补全功能 |
38-
| ---------- | ----------- | --------------- |
39-
| MySQL | mysql ||
40-
| Flink SQL | flinksql ||
41-
| Spark SQL | sparksql ||
42-
| Hive SQL | hivesql ||
43-
| Trino SQL | trinosql ||
44-
| PostgreSQL | pgsql ||
45-
| Impala SQL | impalasql ||
46-
47-
> Monaco SQL Languages 计划在未来支持更多类型的的 SQL Languages。 如果你需要某些目前未支持的 SQL Languages,可以在 [github](https://github.com/DTStack/monaco-sql-languages) 上联系我们。
40+
- Impala
4841

4942
<br/>
5043

@@ -61,42 +54,41 @@ npm install monaco-sql-languages
6154
## 集成
6255

6356
- [集成 Monaco SQL Languages 的 ESM 版本](./documents/integrate-esm.zh-CN.md)
64-
- [Monaco SQL Languages 集成问题修复](./documents/problem-solving.zh-CN.md)
6557

6658
<br/>
6759

6860
## 使用
6961

70-
1. **导入语言的 contributions 文件**
62+
1. **导入语言的 contribution 文件**
7163

7264
> Tips: 如果通过 MonacoEditorWebpackPlugin 来集成,插件会帮助我们自动引入相应的 contribution 文件。如果使用其他方式集成,则需要手动引入相应的 contribution 文件。
7365
7466
```typescript
75-
import 'monaco-sql-languages/out/esm/mysql/mysql.contribution';
76-
import 'monaco-sql-languages/out/esm/flinksql/flinksql.contribution';
77-
import 'monaco-sql-languages/out/esm/sparksql/sparksql.contribution';
78-
import 'monaco-sql-languages/out/esm/hivesql/hivesql.contribution';
79-
import 'monaco-sql-languages/out/esm/trinosql/trinosql.contribution';
80-
import 'monaco-sql-languages/out/esm/impalasql/impalasql.contribution';
81-
import 'monaco-sql-languages/out/esm/pgsql/pgsql.contribution';
67+
import 'monaco-sql-languages/esm/languages/mysql/mysql.contribution';
68+
import 'monaco-sql-languages/esm/languages/flink/flink.contribution';
69+
import 'monaco-sql-languages/esm/languages/spark/spark.contribution';
70+
import 'monaco-sql-languages/esm/languages/hive/hive.contribution';
71+
import 'monaco-sql-languages/esm/languages/trino/trino.contribution';
72+
import 'monaco-sql-languages/esm/languages/pgsql/pgsql.contribution';
73+
import 'monaco-sql-languages/esm/languages/impala/impala.contribution';
8274

8375
// 或者你可以通过下面的方式一次性导入所有的语言功能
84-
// import 'monaco-sql-languages/out/esm/monaco.contribution';
76+
// import 'monaco-sql-languages/esm/all.contributions';
8577
```
8678

8779
2. **设置语言功能**
8880

89-
你可以通过 `setupLanguageFeatures` 设置语言功能,比如禁用 FlinkSQL 语言的自动补全功能。
81+
你可以通过 `setupLanguageFeatures` 设置语言功能,比如设置 FlinkSQL 语言的自动补全功能。
9082
```typescript
91-
import {
92-
setupLanguageFeatures,
93-
LanguageIdEnum,
94-
} from 'monaco-sql-languages';
95-
96-
setupLanguageFeatures({
97-
languageId: LanguageIdEnum.FLINK,
98-
completionItems: false
99-
})
83+
import { LanguageIdEnum, setupLanguageFeatures } from 'monaco-sql-languages';
84+
85+
setupLanguageFeatures(LanguageIdEnum.FLINK, {
86+
completionItems: {
87+
enable: true,
88+
triggerCharacters: [' ', '.'],
89+
completionService: //... ,
90+
}
91+
});
10092
```
10193

10294
默认情况下,自动补全功能只提供关键字自动补全, 但你可以通过设置 `completionService` 自定义自动补全项。
@@ -115,7 +107,8 @@ npm install monaco-sql-languages
115107
model,
116108
position,
117109
completionContext,
118-
suggestions
110+
suggestions, // 语法推荐信息
111+
entities // 当前编辑器文本的语法上下文中出现的表名、字段名等
119112
) {
120113
return new Promise((resolve, reject) => {
121114
if (!suggestions) {
@@ -146,18 +139,22 @@ npm install monaco-sql-languages
146139
});
147140
};
148141
149-
setupLanguageFeatures({
150-
languageId: LanguageIdEnum.FLINK,
151-
completionService: completionService,
152-
})
142+
setupLanguageFeatures(LanguageIdEnum.FLINK, {
143+
completionItems: {
144+
enable: true,
145+
completionService,
146+
}
147+
});
153148
```
154149

155150
3. **创建 Monaco Editor 并指定语言**
156151

157152
```typescript
153+
import { LanguageIdEnum } from 'monaco-sql-languages';
154+
158155
monaco.editor.create(document.getElementById('container'), {
159156
value: 'select * from tb_test',
160-
language: 'flinksql' // languageId
157+
language: LanguageIdEnum.FLINK // languageId
161158
});
162159
```
163160

@@ -215,7 +212,7 @@ const myThemeData: editor.IStandaloneThemeData = {
215212
editor.defineTheme('my-theme', myThemeData);
216213
```
217214

218-
> `postfixTokenClass` 在大多数情况下不是必须的,但是由于 Monaco SQL Languages 内部为所有的语言都设置了 `tokenPostfix: 'sql'`所以在某些情况下,如果不使用 `postfixTokenClass` 处理 `TokenClassConsts.*`你自定义的样式可能不生效
215+
> `postfixTokenClass` 在大多数情况下不是必须的,但是由于 Monaco SQL Languages 内部为所有的语言都设置了 `tokenPostfix: 'sql'`所以在某些情况下,如果不使用 `postfixTokenClass` 处理 `TokenClassConsts.*`自定义的样式可能不生效
219216

220217
<br/>
221218

@@ -236,15 +233,14 @@ editor.defineTheme('my-theme', myThemeData);
236233
pnpm dev
237234
```
238235

239-
- 打包
236+
- 构建
240237

241238
```bash
242-
pnpm compile
239+
pnpm build
243240
```
244241

245242
- 单元测试
246243
```
247-
pnpm compile
248244
pnpm test
249245
```
250246

README.md

Lines changed: 50 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -9,44 +9,35 @@
99

1010
English | [简体中文](./README-zh_CN.md)
1111

12-
This project is based on the SQL language project of Monaco Editor, which was forked from the [monaco-languages](https://github.com/microsoft/monaco-languages).
12+
This project is based on the SQL language project of Monaco Editor, which was forked from the [monaco-languages](https://github.com/microsoft/monaco-languages).The difference is that Monaco SQL Languages supports various SQL languages and the corresponding advanced features for the **Big Data field**.
1313

14-
The difference is that Monaco SQL Languages has integrated with various SQL languages for the **Big Data field**, such as FlinkSQL, SparkSQL, HiveSQL, and others.
14+
<br/>
15+
16+
## Feature highlights
17+
- Code Highlighting
18+
- Syntax Validation
19+
- Code Completion
1520

16-
In addition, Monaco SQL Languages provides **SQL syntax validation** and **CodeCompletion** feature for these languages via [dt-sql-parser](https://github.com/DTStack/dt-sql-parser).
21+
> Powered By [dt-sql-parser](https://github.com/DTStack/dt-sql-parser)
1722
1823
<br/>
1924

2025
## Online Preview
21-
Powered By [molecule](https://github.com/DTStack/molecule).
22-
2326
<https://dtstack.github.io/monaco-sql-languages/>
2427

28+
> Powered By [molecule](https://github.com/DTStack/molecule).
29+
2530
<br/>
2631

2732
## Supported SQL Languages
2833

2934
- MySQL
30-
- FlinkSQL
31-
- SparkSQL
32-
- HiveSQL
33-
- TrinoSQL (PrestoSQL)
35+
- Flink
36+
- Spark
37+
- Hive
38+
- Trino (Presto)
3439
- PostgreSQL
35-
- Impala SQL
36-
37-
**Supported CodeCompletion SQL Languages**
38-
39-
| SQL Type | Language Id | Code-Completion |
40-
| ---------- | ----------- | --------------- |
41-
| MySQL | mysql ||
42-
| Flink SQL | flinksql ||
43-
| Spark SQL | sparksql ||
44-
| Hive SQL | hivesql ||
45-
| Trino SQL | trinosql ||
46-
| PostgreSQL | pgsql ||
47-
| Impala SQL | impalasql ||
48-
49-
> Monaco SQL Languages plan to support more types of SQL Languages in the future. If you need some SQL Languages that are not currently supported, you can contact us at [github](https://github.com/DTStack/monaco-sql-languages).
40+
- Impala
5041

5142
<br/>
5243

@@ -63,7 +54,6 @@ npm install monaco-sql-languages
6354
## Integrating
6455

6556
- [Integrating the ESM version of Monaco SQL Languages](./documents/integrate-esm.md)
66-
- [Solving the problem of integrating](./documents/problem-solving.md)
6757

6858
<br/>
6959

@@ -73,31 +63,32 @@ npm install monaco-sql-languages
7363
> Tips: If integrated via MonacoEditorWebpackPlugin, it will help us to import contribution files automatically. Otherwise, you need to import the contribution files manually.
7464
7565
```typescript
76-
import 'monaco-sql-languages/out/esm/mysql/mysql.contribution';
77-
import 'monaco-sql-languages/out/esm/flinksql/flinksql.contribution';
78-
import 'monaco-sql-languages/out/esm/sparksql/sparksql.contribution';
79-
import 'monaco-sql-languages/out/esm/hivesql/hivesql.contribution';
80-
import 'monaco-sql-languages/out/esm/trinosql/trinosql.contribution';
81-
import 'monaco-sql-languages/out/esm/impalasql/impalasql.contribution';
82-
import 'monaco-sql-languages/out/esm/pgsql/pgsql.contribution';
66+
import 'monaco-sql-languages/esm/languages/mysql/mysql.contribution';
67+
import 'monaco-sql-languages/esm/languages/flink/flink.contribution';
68+
import 'monaco-sql-languages/esm/languages/spark/spark.contribution';
69+
import 'monaco-sql-languages/esm/languages/hive/hive.contribution';
70+
import 'monaco-sql-languages/esm/languages/trino/trino.contribution';
71+
import 'monaco-sql-languages/esm/languages/pgsql/pgsql.contribution';
72+
import 'monaco-sql-languages/esm/languages/impala/impala.contribution';
8373

8474
// Or you can import all language contributions at once.
85-
// import 'monaco-sql-languages/out/esm/monaco.contribution';
75+
// import 'monaco-sql-languages/esm/all.contributions';
8676
```
8777

8878
2. **Setup language features**
8979

90-
You can setup language features via `setupLanguageFeatures`. For example, disable code completion feature of flinkSQL language.
91-
```typescript
92-
import {
93-
setupLanguageFeatures,
94-
LanguageIdEnum,
95-
} from 'monaco-sql-languages';
80+
You can setup language features via `setupLanguageFeatures`. For example, setup code completion feature of flinkSQL language.
9681

97-
setupLanguageFeatures({
98-
languageId: LanguageIdEnum.FLINK,
99-
completionItems: false
100-
})
82+
```typescript
83+
import { LanguageIdEnum, setupLanguageFeatures } from 'monaco-sql-languages';
84+
85+
setupLanguageFeatures(LanguageIdEnum.FLINK, {
86+
completionItems: {
87+
enable: true,
88+
triggerCharacters: [' ', '.'],
89+
completionService: //... ,
90+
}
91+
});
10192
```
10293

10394
By default, Monaco SQL Languages only provides keyword autocompletion, and you can customize your completionItem list via `completionService`.
@@ -116,7 +107,8 @@ npm install monaco-sql-languages
116107
model,
117108
position,
118109
completionContext,
119-
suggestions
110+
suggestions, // syntax context info at caretPosition
111+
entities // tables, columns in the syntax context of the editor text
120112
) {
121113
return new Promise((resolve, reject) => {
122114
if (!suggestions) {
@@ -147,18 +139,22 @@ npm install monaco-sql-languages
147139
});
148140
};
149141
150-
setupLanguageFeatures({
151-
languageId: LanguageIdEnum.FLINK,
152-
completionService: completionService,
153-
})
142+
setupLanguageFeatures(LanguageIdEnum.FLINK, {
143+
completionItems: {
144+
enable: true,
145+
completionService: //... ,
146+
}
147+
});
154148
```
155149

156150
3. **Create the Monaco Editor instance and specify the language you need**
157151

158152
```typescript
153+
import { LanguageIdEnum } from 'monaco-sql-languages';
154+
159155
monaco.editor.create(document.getElementById('container'), {
160156
value: 'select * from tb_test',
161-
language: 'flinksql' // you need
157+
language: LanguageIdEnum.FLINK // languageId
162158
});
163159
```
164160

@@ -170,9 +166,9 @@ npm install monaco-sql-languages
170166

171167
Monaco SQL Languages provides built-in Monaco Theme that is named `vsPlusTheme`. `vsPlusTheme` inspired by vscode default plus colorTheme and it contains three styles of themes inside:
172168

173-
- `darkTheme`: inherited from Monaco built-in Theme `vs-dark`;
174-
- `lightTheme`: inherited from Monaco built-in Theme `vs`;
175-
- `hcBlackTheme`: inherited from Monaco built-in Theme `hc-black`;
169+
- `darkTheme`: Inherited from monaco built-in theme `vs-dark`;
170+
- `lightTheme`: Inherited from monaco built-in theme `vs`;
171+
- `hcBlackTheme`: Inherited from monaco built-in theme `hc-black`;
176172

177173
**Use Monaco SQL Languages built-in vsPlusTheme**
178174

@@ -237,15 +233,14 @@ editor.defineTheme('my-theme', myThemeData);
237233
pnpm dev
238234
```
239235

240-
- compile
236+
- build
241237

242238
```bash
243-
pnpm compile
239+
pnpm build
244240
```
245241

246242
- run test
247243
```
248-
pnpm compile
249244
pnpm test
250245
```
251246

0 commit comments

Comments
 (0)