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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
/node_modules/
/out/
/esm/
/esm-dev/
/release/
.history
/docs/
Expand Down
26 changes: 26 additions & 0 deletions README-zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,32 @@ npm install monaco-sql-languages
});
```

4. **SQL 格式化(可选)**

格式化依赖 [`sql-formatter`](https://github.com/sql-formatter-org/sql-formatter) 作为**可选 peer 依赖**。`format.enable: true` 时,内置路径按需 dynamic import **消费者项目中安装的** sql-formatter 版本(建议较新版本,如 v15+)。

```bash
npm install sql-formatter
```

**优先级:** 内置 sql-formatter → `fallback`(不可用或抛错)→ 原文。

```typescript
import { LanguageIdEnum, setupLanguageFeatures } from 'monaco-sql-languages';

setupLanguageFeatures(LanguageIdEnum.MYSQL, {
format: {
enable: true,
tabWidth: 4,
fallback: (code, languageId) => myLegacyFormat(code, languageId)
}
});
```

> **版本说明:** 库 dev/测试使用较新版本(如 v15)。Chrome 75 等旧环境可在业务项目中 pin `sql-formatter@10.7.2`,内置路径会使用该版本;`fallback` 可用于 `${param}` 等业务逻辑。

编辑器快捷键:**Ctrl/Cmd+Alt+F**(右键 **Format**)。若格式化结果与原文相同,编辑器不会应用 edits。

<br/>

## 代码片段
Expand Down
26 changes: 26 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,32 @@ npm install monaco-sql-languages
});
```

4. **SQL Formatting (optional)**

Formatting uses [`sql-formatter`](https://github.com/sql-formatter-org/sql-formatter) as an **optional peer dependency**. When `format.enable` is true, the built-in path dynamically imports whatever `sql-formatter` version the consumer installed (recommended: latest major, e.g. v15+).

```bash
npm install sql-formatter
```

**Priority:** built-in sql-formatter → `fallback` (unavailable or throw) → original code.

```typescript
import { LanguageIdEnum, setupLanguageFeatures } from 'monaco-sql-languages';

setupLanguageFeatures(LanguageIdEnum.MYSQL, {
format: {
enable: true,
tabWidth: 4,
fallback: (code, languageId) => myLegacyFormat(code, languageId)
}
});
```

> **Version note:** The library dev/tests use a recent sql-formatter (e.g. v15). Consumers on legacy browsers (e.g. Chrome 75) can pin `sql-formatter@10.7.2` in their own project; formatting uses that installed version via the built-in path, with optional `fallback` for custom logic.

Editor shortcut: **Ctrl/Cmd+Alt+F** (context menu **Format**). When formatting returns unchanged text, the editor applies no edit.

<br/>

## SQL Snippets
Expand Down
14 changes: 11 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
{
"name": "monaco-sql-languages",
"version": "1.2.0",
"version": "1.2.1-beta.2",
"description": "SQL languages for the Monaco Editor, based on monaco-languages.",
"scripts": {
"prepublishOnly": "npm run build",
"build": "rm -rf ./esm && tsc -p ./tsconfig.esm.json",
"build:dev": "rm -rf ./esm-dev && tsc -p ./tsconfig.esm.json --outDir esm-dev",
"build-amd": "rm -rf ./out && tsc -p ./tsconfig.amd.json",
"watch-esm": "tsc -p ./tsconfig.esm.json --watch",
"test": "npm run build-amd && mocha ./test/all.js",
"dev": "node --max_old_space_size=4092 & cd website && npm run dev",
"dev": "npm run build:dev && node --max_old_space_size=4092 & cd website && npm run dev",
"prod": "rm -rf ./docs && node --max_old_space_size=4092 & cd website && npm run build",
"deploy": "npm run build && npm run prod && gh-pages -d docs -r git@github.com:DTStack/monaco-sql-languages.git",
"format": "prettier --write .",
Expand Down Expand Up @@ -58,6 +59,7 @@
"mocha": "^11.7.4",
"monaco-editor": "0.54.0",
"prettier": "^3.3.3",
"sql-formatter": "^15.8.2",
"pretty-quick": "^4.0.0",
"requirejs": "^2.3.6",
"simple-git-hooks": "^2.11.1",
Expand All @@ -68,7 +70,13 @@
"pre-commit": "npx pretty-quick --staged"
},
"peerDependencies": {
"monaco-editor": ">=0.37.1"
"monaco-editor": ">=0.37.1",
"sql-formatter": ">=4.0.0"
},
"peerDependenciesMeta": {
"sql-formatter": {
"optional": true
}
},
"engines": {
"node": ">=18"
Expand Down
57 changes: 55 additions & 2 deletions pnpm-lock.yaml

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

Loading
Loading