Skip to content

Commit 96976aa

Browse files
authored
feat: use monaco-yql-languages for syntax highlight (#1063)
1 parent ce0c03e commit 96976aa

File tree

15 files changed

+46
-303
lines changed

15 files changed

+46
-303
lines changed

config-overrides.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
const path = require('path');
22

3+
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
4+
35
const srcRoot = path.resolve(__dirname, 'src');
46
const uiKitRoot = path.resolve(__dirname, 'node_modules/@gravity-ui/uikit');
57
const uiKitIconsRoot = path.resolve(__dirname, 'node_modules/@gravity-ui/icons');
@@ -21,6 +23,16 @@ module.exports = {
2123
if (env === 'production') {
2224
config.output.path = path.resolve(__dirname, 'build/');
2325
}
26+
config.plugins.push(
27+
new MonacoWebpackPlugin({
28+
customLanguages: [
29+
{
30+
label: 'yql',
31+
entry: 'monaco-yql-languages/build/monaco.contribution',
32+
},
33+
],
34+
}),
35+
);
2436

2537
return config;
2638
},

package-lock.json

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

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,8 @@
147147
"husky": "^9.0.11",
148148
"jest-transform-css": "^6.0.1",
149149
"lint-staged": "^15.2.7",
150+
"monaco-editor-webpack-plugin": "^7.1.0",
151+
"monaco-yql-languages": "^1.0.6",
150152
"npm-run-all": "^4.1.5",
151153
"postcss": "^8.4.38",
152154
"prettier": "^3.2.5",

src/components/MonacoEditor/MonacoEditor.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,5 @@ import {lazyComponent} from '../../utils/lazyComponent';
22

33
export const MonacoEditor = lazyComponent(async () => {
44
const Editor = (await import('react-monaco-editor')).default;
5-
const {registerLanguages} = await import('../../utils/monaco');
6-
registerLanguages();
75
return {Editor};
86
}, 'Editor');

src/containers/Tenant/Query/ExplainResult/ExplainResult.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {explainVersions} from '../../../../store/reducers/explainQuery/utils';
1313
import {disableFullscreen} from '../../../../store/reducers/fullscreen';
1414
import {cn} from '../../../../utils/cn';
1515
import {useTypedDispatch, useTypedSelector} from '../../../../utils/hooks';
16-
import {LANGUAGE_S_EXPRESSION_ID} from '../../../../utils/monaco/s-expression/constants';
16+
import {S_EXPRESSION_LANGUAGE_ID} from '../../../../utils/monaco/constats';
1717
import {parseQueryErrorToString} from '../../../../utils/query';
1818
import {PaneVisibilityToggleButtons} from '../../utils/paneVisibilityToggleHelpers';
1919

@@ -141,7 +141,7 @@ export function ExplainResult(props) {
141141
const content = (
142142
<div className={b('ast')}>
143143
<MonacoEditor
144-
language={LANGUAGE_S_EXPRESSION_ID}
144+
language={S_EXPRESSION_LANGUAGE_ID}
145145
value={props.ast}
146146
options={EDITOR_OPTIONS}
147147
wrappingIndent="indent"

src/containers/Tenant/Query/QueryEditor/QueryEditor.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import {
3030
QUERY_USE_MULTI_SCHEMA_KEY,
3131
} from '../../../../utils/constants';
3232
import {useQueryModes, useSetting} from '../../../../utils/hooks';
33-
import {LANGUAGE_YQL_ID} from '../../../../utils/monaco/yql/constants';
33+
import {YQL_LANGUAGE_ID} from '../../../../utils/monaco/constats';
3434
import {QUERY_ACTIONS} from '../../../../utils/query';
3535
import type {InitialPaneState} from '../../utils/paneVisibilityToggleHelpers';
3636
import {
@@ -382,7 +382,7 @@ function QueryEditor(props: QueryEditorProps) {
382382
<div className={b('monaco-wrapper')}>
383383
<div className={b('monaco')}>
384384
<MonacoEditor
385-
language={LANGUAGE_YQL_ID}
385+
language={YQL_LANGUAGE_ID}
386386
value={executeQuery.input}
387387
options={editorOptions}
388388
onChange={onChange}

src/utils/monaco/constats.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export const S_EXPRESSION_LANGUAGE_ID = 's-expression';
2+
export const YQL_LANGUAGE_ID = 'yql';

src/utils/monaco/index.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/utils/monaco/s-expression/constants.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/utils/monaco/s-expression/registerLanguage.ts

Lines changed: 0 additions & 65 deletions
This file was deleted.

src/utils/monaco/yql/constants.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import type {YQLEntity} from '@gravity-ui/websql-autocomplete';
22

3-
export const LANGUAGE_YQL_ID = 'yql';
4-
53
export const SimpleTypes = [
64
'String',
75
'Bool',

src/utils/monaco/yql/registerLanguage.ts

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/utils/monaco/yql/yql.completionItemProvider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as monaco from 'monaco-editor';
2+
import {LANGUAGE_ID} from 'monaco-yql-languages/build/yql/yql.contribution';
23

3-
import {LANGUAGE_YQL_ID} from './constants';
44
import {createProvideSuggestionsFunction} from './yqlSuggestions';
55

66
let completionProvider: monaco.IDisposable | undefined;
@@ -13,7 +13,7 @@ function disableCodeSuggestions(): void {
1313

1414
export function registerYQLCompletionItemProvider(database: string) {
1515
disableCodeSuggestions();
16-
completionProvider = monaco.languages.registerCompletionItemProvider(LANGUAGE_YQL_ID, {
16+
completionProvider = monaco.languages.registerCompletionItemProvider(LANGUAGE_ID, {
1717
triggerCharacters: [' ', '.', '`', '(', '/'],
1818
provideCompletionItems: createProvideSuggestionsFunction(database),
1919
});

src/utils/monaco/yql/yql.keywords.ts

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)