@neo4j-cypher/react-codemirror 2.0.0-next.7 → 2.0.0-next.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/CypherEditor.d.ts +60 -2
- package/dist/CypherEditor.js +115 -20
- package/dist/CypherEditor.js.map +1 -1
- package/dist/e2e_tests/autoCompletion.spec.js +112 -17
- package/dist/e2e_tests/autoCompletion.spec.js.map +1 -1
- package/dist/e2e_tests/configuration.spec.d.ts +1 -0
- package/dist/e2e_tests/configuration.spec.js +83 -0
- package/dist/e2e_tests/configuration.spec.js.map +1 -0
- package/dist/e2e_tests/debounce.spec.d.ts +1 -0
- package/dist/e2e_tests/debounce.spec.js +63 -0
- package/dist/e2e_tests/debounce.spec.js.map +1 -0
- package/dist/e2e_tests/e2eUtils.js +9 -1
- package/dist/e2e_tests/e2eUtils.js.map +1 -1
- package/dist/e2e_tests/extraKeybindings.spec.js +0 -1
- package/dist/e2e_tests/extraKeybindings.spec.js.map +1 -1
- package/dist/e2e_tests/historyNavigation.spec.js +107 -16
- package/dist/e2e_tests/historyNavigation.spec.js.map +1 -1
- package/dist/e2e_tests/sanityChecks.spec.js +0 -10
- package/dist/e2e_tests/sanityChecks.spec.js.map +1 -1
- package/dist/e2e_tests/signatureHelp.spec.js +43 -15
- package/dist/e2e_tests/signatureHelp.spec.js.map +1 -1
- package/dist/e2e_tests/snippets.spec.d.ts +1 -0
- package/dist/e2e_tests/snippets.spec.js +62 -0
- package/dist/e2e_tests/snippets.spec.js.map +1 -0
- package/dist/e2e_tests/syntaxHighlighting.spec.js +0 -1
- package/dist/e2e_tests/syntaxHighlighting.spec.js.map +1 -1
- package/dist/e2e_tests/syntaxValidation.spec.js +3 -3
- package/dist/e2e_tests/syntaxValidation.spec.js.map +1 -1
- package/dist/historyNavigation.js +1 -1
- package/dist/historyNavigation.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lang-cypher/autocomplete.d.ts +4 -1
- package/dist/lang-cypher/autocomplete.js +79 -17
- package/dist/lang-cypher/autocomplete.js.map +1 -1
- package/dist/lang-cypher/contants.test.js +2 -2
- package/dist/lang-cypher/contants.test.js.map +1 -1
- package/dist/lang-cypher/createCypherTheme.js +34 -2
- package/dist/lang-cypher/createCypherTheme.js.map +1 -1
- package/dist/lang-cypher/langCypher.d.ts +5 -0
- package/dist/lang-cypher/langCypher.js +11 -5
- package/dist/lang-cypher/langCypher.js.map +1 -1
- package/dist/lang-cypher/signatureHelp.js +39 -22
- package/dist/lang-cypher/signatureHelp.js.map +1 -1
- package/dist/lang-cypher/utils.d.ts +2 -0
- package/dist/lang-cypher/utils.js +10 -0
- package/dist/lang-cypher/utils.js.map +1 -0
- package/dist/neo4jSetup.js +35 -1
- package/dist/neo4jSetup.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
- package/src/CypherEditor.tsx +233 -31
- package/src/e2e_tests/autoCompletion.spec.tsx +189 -18
- package/src/e2e_tests/configuration.spec.tsx +111 -0
- package/src/e2e_tests/debounce.spec.tsx +100 -0
- package/src/e2e_tests/e2eUtils.ts +11 -1
- package/src/e2e_tests/extraKeybindings.spec.tsx +0 -2
- package/src/e2e_tests/historyNavigation.spec.tsx +136 -17
- package/src/e2e_tests/sanityChecks.spec.tsx +0 -16
- package/src/e2e_tests/signatureHelp.spec.tsx +86 -18
- package/src/e2e_tests/snippets.spec.tsx +92 -0
- package/src/e2e_tests/syntaxHighlighting.spec.tsx +0 -2
- package/src/e2e_tests/syntaxValidation.spec.tsx +3 -3
- package/src/historyNavigation.ts +1 -1
- package/src/index.ts +4 -1
- package/src/lang-cypher/autocomplete.ts +95 -19
- package/src/lang-cypher/contants.test.ts +5 -2
- package/src/lang-cypher/createCypherTheme.ts +34 -2
- package/src/lang-cypher/langCypher.ts +17 -5
- package/src/lang-cypher/signatureHelp.ts +61 -30
- package/src/lang-cypher/utils.ts +9 -0
- package/src/neo4jSetup.tsx +51 -1
|
@@ -21,21 +21,21 @@ function testTooltip(tooltip, expectations) {
|
|
|
21
21
|
test('Signature help works for functions', async ({ page, mount }) => {
|
|
22
22
|
const query = 'RETURN abs(';
|
|
23
23
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
24
|
-
await expect(page.locator('.cm-
|
|
24
|
+
await expect(page.locator('.cm-signature-help-panel')).toBeVisible({
|
|
25
25
|
timeout: 2000,
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
28
|
test('Signature help works for procedures', async ({ page, mount }) => {
|
|
29
29
|
const query = 'CALL apoc.import.csv(';
|
|
30
30
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
31
|
-
await expect(page.locator('.cm-
|
|
31
|
+
await expect(page.locator('.cm-signature-help-panel')).toBeVisible({
|
|
32
32
|
timeout: 2000,
|
|
33
33
|
});
|
|
34
34
|
});
|
|
35
35
|
test('Signature help shows the description for the first argument', async ({ page, mount, }) => {
|
|
36
36
|
const query = 'CALL apoc.import.csv(';
|
|
37
37
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
38
|
-
const tooltip = page.locator('.cm-
|
|
38
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
39
39
|
await testTooltip(tooltip, {
|
|
40
40
|
includes: [
|
|
41
41
|
'nodes :: LIST<MAP>',
|
|
@@ -46,7 +46,7 @@ test('Signature help shows the description for the first argument', async ({ pag
|
|
|
46
46
|
test('Signature help shows the description for the first argument when the cursor is at that position', async ({ page, mount, }) => {
|
|
47
47
|
const query = 'CALL apoc.import.csv()';
|
|
48
48
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, offset: 21 }));
|
|
49
|
-
const tooltip = page.locator('.cm-
|
|
49
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
50
50
|
await testTooltip(tooltip, {
|
|
51
51
|
includes: [
|
|
52
52
|
'nodes :: LIST<MAP>',
|
|
@@ -57,7 +57,7 @@ test('Signature help shows the description for the first argument when the curso
|
|
|
57
57
|
test('Signature help shows the description for the second argument', async ({ page, mount, }) => {
|
|
58
58
|
const query = 'CALL apoc.import.csv(nodes,';
|
|
59
59
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
60
|
-
const tooltip = page.locator('.cm-
|
|
60
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
61
61
|
await testTooltip(tooltip, {
|
|
62
62
|
includes: [
|
|
63
63
|
'rels :: LIST<MAP>',
|
|
@@ -68,7 +68,7 @@ test('Signature help shows the description for the second argument', async ({ pa
|
|
|
68
68
|
test('Signature help shows the description for the second argument when the cursor is at that position', async ({ page, mount, }) => {
|
|
69
69
|
const query = 'CALL apoc.import.csv(nodes,)';
|
|
70
70
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, offset: 27 }));
|
|
71
|
-
const tooltip = page.locator('.cm-
|
|
71
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
72
72
|
await testTooltip(tooltip, {
|
|
73
73
|
includes: [
|
|
74
74
|
'rels :: LIST<MAP>',
|
|
@@ -79,7 +79,7 @@ test('Signature help shows the description for the second argument when the curs
|
|
|
79
79
|
test('Signature help shows the description for the second argument when the cursor is at that position, even after whitespaces', async ({ page, mount, }) => {
|
|
80
80
|
const query = 'CALL apoc.import.csv(nodes, )';
|
|
81
81
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, offset: 28 }));
|
|
82
|
-
const tooltip = page.locator('.cm-
|
|
82
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
83
83
|
await testTooltip(tooltip, {
|
|
84
84
|
includes: [
|
|
85
85
|
'rels :: LIST<MAP>',
|
|
@@ -90,7 +90,7 @@ test('Signature help shows the description for the second argument when the curs
|
|
|
90
90
|
test('Signature help shows description for arguments with a space following a separator', async ({ page, mount, }) => {
|
|
91
91
|
const query = 'CALL apoc.import.csv(nodes, ';
|
|
92
92
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
93
|
-
const tooltip = page.locator('.cm-
|
|
93
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
94
94
|
await testTooltip(tooltip, {
|
|
95
95
|
includes: [
|
|
96
96
|
'rels :: LIST<MAP>',
|
|
@@ -101,7 +101,7 @@ test('Signature help shows description for arguments with a space following a se
|
|
|
101
101
|
test('Signature help shows the description for the third argument', async ({ page, mount, }) => {
|
|
102
102
|
const query = 'CALL apoc.import.csv(nodes, rels,';
|
|
103
103
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
104
|
-
const tooltip = page.locator('.cm-
|
|
104
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
105
105
|
await testTooltip(tooltip, {
|
|
106
106
|
includes: [
|
|
107
107
|
'config :: MAP',
|
|
@@ -115,7 +115,7 @@ test('Signature help works on multiline queries', async ({ page, mount }) => {
|
|
|
115
115
|
rels,
|
|
116
116
|
`;
|
|
117
117
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
118
|
-
const tooltip = page.locator('.cm-
|
|
118
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
119
119
|
await testTooltip(tooltip, {
|
|
120
120
|
includes: [
|
|
121
121
|
'config :: MAP',
|
|
@@ -126,25 +126,53 @@ test('Signature help works on multiline queries', async ({ page, mount }) => {
|
|
|
126
126
|
test('Signature help only shows the description past the last argument', async ({ page, mount, }) => {
|
|
127
127
|
const query = 'CALL apoc.import.csv(nodes, rels, config,';
|
|
128
128
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
129
|
-
|
|
129
|
+
1;
|
|
130
|
+
const tooltip = page.locator('.cm-signature-help-panel');
|
|
130
131
|
await testTooltip(tooltip, {
|
|
131
132
|
includes: [
|
|
132
|
-
'
|
|
133
|
+
'apoc.import.csv(nodes :: LIST<MAP>, rels :: LIST<MAP>, config :: MAP)',
|
|
134
|
+
'Imports `NODE` and `RELATIONSHIP` values with the given labels and types from the provided CSV file.',
|
|
133
135
|
],
|
|
134
|
-
excludes: ['config :: MAP'],
|
|
135
136
|
});
|
|
136
137
|
});
|
|
137
138
|
test('Signature help does not show any help when method finished', async ({ page, mount, }) => {
|
|
138
139
|
const query = 'CALL apoc.import.csv(nodes, rels, config)';
|
|
139
140
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
140
|
-
await expect(page.locator('.cm-
|
|
141
|
+
await expect(page.locator('.cm-signature-help-panel')).not.toBeVisible({
|
|
141
142
|
timeout: 2000,
|
|
142
143
|
});
|
|
143
144
|
});
|
|
144
145
|
test('Signature help does not blow up on empty query', async ({ page, mount, }) => {
|
|
145
146
|
const query = '';
|
|
146
147
|
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
147
|
-
await expect(page.locator('.cm-
|
|
148
|
+
await expect(page.locator('.cm-signature-help-panel')).not.toBeVisible({
|
|
149
|
+
timeout: 2000,
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
test('Signature help is shown below the text by default', async ({ page, mount, }) => {
|
|
153
|
+
// We need to introduce new lines to make sure there's
|
|
154
|
+
// enough space to show the tooltip above
|
|
155
|
+
const query = '\n\n\n\n\n\n\nRETURN abs(';
|
|
156
|
+
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, autofocus: true }));
|
|
157
|
+
await expect(page.locator('.cm-signature-help-panel.cm-tooltip-below')).toBeVisible({
|
|
158
|
+
timeout: 2000,
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
test('Setting showSignatureTooltipBelow to true shows the signature help above the text', async ({ page, mount, }) => {
|
|
162
|
+
// We need to introduce new lines to make sure there's
|
|
163
|
+
// enough space to show the tooltip above
|
|
164
|
+
const query = '\n\n\n\n\n\n\nRETURN abs(';
|
|
165
|
+
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, showSignatureTooltipBelow: true, autofocus: true }));
|
|
166
|
+
await expect(page.locator('.cm-signature-help-panel.cm-tooltip-below')).toBeVisible({
|
|
167
|
+
timeout: 2000,
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
test('Setting showSignatureTooltipBelow to false shows the signature help above the text', async ({ page, mount, }) => {
|
|
171
|
+
// We need to introduce new lines to make sure there's
|
|
172
|
+
// enough space to show the tooltip above
|
|
173
|
+
const query = '\n\n\n\n\n\n\nRETURN abs(';
|
|
174
|
+
await mount(_jsx(CypherEditor, { value: query, schema: testData.mockSchema, showSignatureTooltipBelow: false, autofocus: true }));
|
|
175
|
+
await expect(page.locator('.cm-signature-help-panel.cm-tooltip-above')).toBeVisible({
|
|
148
176
|
timeout: 2000,
|
|
149
177
|
});
|
|
150
178
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signatureHelp.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/signatureHelp.spec.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AAOrD,SAAS,WAAW,CAAC,OAAgB,EAAE,YAAiC;IACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;IAE7C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACpB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE;YACzC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACpB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE;YAC7C,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,IAAI,CAAC,oCAAoC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACnE,MAAM,KAAK,GAAG,aAAa,CAAC;IAE5B,MAAM,KAAK,CACT,KAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,QAAQ,CAAC,UAAU,EAC3B,SAAS,EAAE,IAAI,GACf,CACH,CAAC;IAEF,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"signatureHelp.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/signatureHelp.spec.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { expect, test } from '@playwright/experimental-ct-react';
|
|
3
|
+
import { CypherEditor } from '../CypherEditor';
|
|
4
|
+
test('can complete pattern snippet', async ({ page, mount }) => {
|
|
5
|
+
await mount(_jsx(CypherEditor, {}));
|
|
6
|
+
const textField = page.getByRole('textbox');
|
|
7
|
+
await textField.fill('MATCH ()-[]->()');
|
|
8
|
+
await page.locator('.cm-tooltip-autocomplete').getByText('-[]->()').click();
|
|
9
|
+
await expect(page.locator('.cm-tooltip-autocomplete')).not.toBeVisible();
|
|
10
|
+
await textField.press('Tab');
|
|
11
|
+
await textField.press('Tab');
|
|
12
|
+
await expect(textField).toHaveText('MATCH ()-[]->()-[ ]->( )');
|
|
13
|
+
});
|
|
14
|
+
test('can navigate snippet', async ({ page, mount }) => {
|
|
15
|
+
await mount(_jsx(CypherEditor, {}));
|
|
16
|
+
const textField = page.getByRole('textbox');
|
|
17
|
+
await textField.fill('CREATE INDEX abc FOR ()');
|
|
18
|
+
await page
|
|
19
|
+
.locator('.cm-tooltip-autocomplete')
|
|
20
|
+
.getByText('-[]-()', { exact: true })
|
|
21
|
+
.click();
|
|
22
|
+
await expect(page.locator('.cm-tooltip-autocomplete')).not.toBeVisible();
|
|
23
|
+
await expect(page.locator('.cm-snippetField')).toHaveCount(2);
|
|
24
|
+
await textField.press('Tab');
|
|
25
|
+
await textField.press('Shift+Tab');
|
|
26
|
+
await expect(textField).toHaveText('CREATE INDEX abc FOR ()-[ ]-( )');
|
|
27
|
+
await textField.press('a');
|
|
28
|
+
await expect(textField).toHaveText('CREATE INDEX abc FOR ()-[a]-( )');
|
|
29
|
+
await textField.press('Escape');
|
|
30
|
+
await textField.press('Escape');
|
|
31
|
+
await expect(page.locator('.cm-snippetField')).toHaveCount(0);
|
|
32
|
+
await textField.press('Tab');
|
|
33
|
+
await expect(textField).toHaveText('CREATE INDEX abc FOR ()-[a ]-( )');
|
|
34
|
+
});
|
|
35
|
+
test('can accept completion inside pattern snippet', async ({ page, mount, }) => {
|
|
36
|
+
await mount(_jsx(CypherEditor, { schema: { labels: ['City'] } }));
|
|
37
|
+
const textField = page.getByRole('textbox');
|
|
38
|
+
await textField.fill('MATCH ()-[]->()');
|
|
39
|
+
await page.locator('.cm-tooltip-autocomplete').getByText('-[]->()').click();
|
|
40
|
+
await expect(page.locator('.cm-tooltip-autocomplete')).not.toBeVisible();
|
|
41
|
+
// move to node
|
|
42
|
+
await textField.press('Tab');
|
|
43
|
+
// get & accept completion
|
|
44
|
+
await textField.press(':');
|
|
45
|
+
await expect(page.locator('.cm-tooltip-autocomplete').getByText('City')).toBeVisible();
|
|
46
|
+
await textField.press('Tab');
|
|
47
|
+
await expect(page.locator('.cm-tooltip-autocomplete')).not.toBeVisible();
|
|
48
|
+
// tab out of the snippet
|
|
49
|
+
await textField.press('Tab');
|
|
50
|
+
await expect(textField).toHaveText('MATCH ()-[]->()-[ ]->(:City)');
|
|
51
|
+
});
|
|
52
|
+
test('does not automatically open completion panel for expressions after snippet trigger char', async ({ page, mount, }) => {
|
|
53
|
+
await mount(_jsx(CypherEditor, {}));
|
|
54
|
+
const textField = page.getByRole('textbox');
|
|
55
|
+
await textField.fill('RETURN (1)');
|
|
56
|
+
// expect the panel to not show up
|
|
57
|
+
await expect(page.locator('.cm-tooltip-autocomplete')).not.toBeVisible();
|
|
58
|
+
// unless manually triggered
|
|
59
|
+
await textField.press('Control+ ');
|
|
60
|
+
await expect(page.locator('.cm-tooltip-autocomplete')).toBeVisible();
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=snippets.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snippets.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/snippets.spec.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { expect, test } from '@playwright/experimental-ct-react';
|
|
|
3
3
|
import { CypherEditor } from '../CypherEditor';
|
|
4
4
|
import { darkThemeConstants, lightThemeConstants } from '../themes';
|
|
5
5
|
import { CypherEditorPage } from './e2eUtils';
|
|
6
|
-
test.use({ viewport: { width: 500, height: 500 } });
|
|
7
6
|
test('light theme highlighting', async ({ page, mount }) => {
|
|
8
7
|
const editorPage = new CypherEditorPage(page);
|
|
9
8
|
const query = `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntaxHighlighting.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/syntaxHighlighting.spec.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"syntaxHighlighting.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/syntaxHighlighting.spec.tsx"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@ test('Semantic errors are correctly accumulated', async ({ page, mount }) => {
|
|
|
53
53
|
const editorPage = new CypherEditorPage(page);
|
|
54
54
|
const query = 'CALL { MATCH (n) } IN TRANSACTIONS OF -1 ROWS';
|
|
55
55
|
await mount(_jsx(CypherEditor, { value: query }));
|
|
56
|
-
await editorPage.checkErrorMessage('MATCH (n)', 'Query cannot conclude with MATCH (must be a RETURN clause, an update clause, a unit subquery call, or a procedure call with no YIELD)');
|
|
56
|
+
await editorPage.checkErrorMessage('MATCH (n)', 'Query cannot conclude with MATCH (must be a RETURN clause, a FINISH clause, an update clause, a unit subquery call, or a procedure call with no YIELD).');
|
|
57
57
|
await editorPage.checkErrorMessage('-1', "Invalid input. '-1' is not a valid value. Must be a positive integer");
|
|
58
58
|
});
|
|
59
59
|
test('Multiline errors are correctly placed', async ({ page, mount }) => {
|
|
@@ -63,7 +63,7 @@ test('Multiline errors are correctly placed', async ({ page, mount }) => {
|
|
|
63
63
|
} IN TRANSACTIONS
|
|
64
64
|
OF -1 ROWS`;
|
|
65
65
|
await mount(_jsx(CypherEditor, { value: query }));
|
|
66
|
-
await editorPage.checkErrorMessage('MATCH (n)', 'Query cannot conclude with MATCH (must be a RETURN clause, an update clause, a unit subquery call, or a procedure call with no YIELD)');
|
|
66
|
+
await editorPage.checkErrorMessage('MATCH (n)', 'Query cannot conclude with MATCH (must be a RETURN clause, a FINISH clause, an update clause, a unit subquery call, or a procedure call with no YIELD)');
|
|
67
67
|
await editorPage.checkErrorMessage('-1', "Invalid input. '-1' is not a valid value. Must be a positive integer");
|
|
68
68
|
});
|
|
69
69
|
test('Validation errors are correctly overlapped', async ({ page, mount }) => {
|
|
@@ -73,7 +73,7 @@ test('Validation errors are correctly overlapped', async ({ page, mount }) => {
|
|
|
73
73
|
} IN TRANSACTIONS
|
|
74
74
|
OF -1 ROWS`;
|
|
75
75
|
await mount(_jsx(CypherEditor, { value: query }));
|
|
76
|
-
await editorPage.checkErrorMessage('-1', 'Query cannot conclude with CALL (must be a RETURN clause, an update clause, a unit subquery call, or a procedure call with no YIELD)');
|
|
76
|
+
await editorPage.checkErrorMessage('-1', 'Query cannot conclude with CALL (must be a RETURN clause, a FINISH clause, an update clause, a unit subquery call, or a procedure call with no YIELD).');
|
|
77
77
|
await editorPage.checkErrorMessage('-1', "Invalid input. '-1' is not a valid value. Must be a positive integer");
|
|
78
78
|
});
|
|
79
79
|
//# sourceMappingURL=syntaxValidation.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntaxValidation.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/syntaxValidation.spec.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"syntaxValidation.spec.js","sourceRoot":"","sources":["../../src/e2e_tests/syntaxValidation.spec.tsx"],"names":[],"mappings":"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"}
|
|
@@ -81,7 +81,7 @@ export const replaceHistory = StateEffect.define();
|
|
|
81
81
|
function navigateHistory(view, direction) {
|
|
82
82
|
view.dispatch(view.state.update({
|
|
83
83
|
effects: moveInHistory.of(direction),
|
|
84
|
-
selection: { anchor: view.state.doc.length },
|
|
84
|
+
selection: { anchor: direction === 'BACK' ? 0 : view.state.doc.length },
|
|
85
85
|
}));
|
|
86
86
|
const updatedHistory = view.state.field(historyState, false);
|
|
87
87
|
if (updatedHistory.documentUpdate !== null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"historyNavigation.js","sourceRoot":"","sources":["../src/historyNavigation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"historyNavigation.js","sourceRoot":"","sources":["../src/historyNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAc,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQ/C,MAAM,iBAAiB,GAAG,CAAC,CAAC,CAAC;AAC7B,MAAM,mBAAmB,GAAG;IAC1B,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,iBAAiB;IACxB,cAAc,EAAE,IAAI;IACpB,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAe;IACnD,MAAM;QACJ,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,MAAM,CAAC,KAAK;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,WAAW;QACvB,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE;YACxC,IAAI,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE;gBAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,OAAO;wBACL,GAAG,KAAK;wBACR,cAAc,EAAE,IAAI;qBACrB,CAAC;iBACH;gBAED,MAAM,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC;gBACxC,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,EAAE;oBAC3B,MAAM,eAAe,GAAG,mBAAmB,GAAG,CAAC,CAAC;oBAEhD,IAAI,eAAe,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;wBAC5C,OAAO;4BACL,GAAG,KAAK;4BACR,cAAc,EAAE,IAAI;yBACrB,CAAC;qBACH;oBAED,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBACxB,IAAI,mBAAmB,KAAK,iBAAiB,EAAE;wBAC7C,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;qBAC1C;oBAED,OAAO;wBACL,GAAG,KAAK;wBACR,KAAK;wBACL,KAAK,EAAE,eAAe;wBACtB,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;qBAC/C,CAAC;iBACH;qBAAM,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE;oBACtC,MAAM,eAAe,GAAG,mBAAmB,GAAG,CAAC,CAAC;oBAEhD,IAAI,mBAAmB,KAAK,iBAAiB,EAAE;wBAC7C,OAAO,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;qBAC3C;oBAED,IAAI,eAAe,KAAK,iBAAiB,EAAE;wBACzC,OAAO;4BACL,GAAG,KAAK;4BACR,KAAK,EAAE,eAAe;4BACtB,cAAc,EAAE,KAAK,CAAC,KAAK;yBAC5B,CAAC;qBACH;yBAAM;wBACL,OAAO;4BACL,GAAG,KAAK;4BACR,KAAK,EAAE,eAAe;4BACtB,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;yBAC/C,CAAC;qBACH;iBACF;aACF;iBAAM,IAAI,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE;gBACpC,OAAO;oBACL,GAAG,KAAK;oBACR,KAAK,EAAE,iBAAiB;oBACxB,OAAO,EAAE,MAAM,CAAC,KAAK;iBACtB,CAAC;aACH;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC,CAAC;AAGH,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,EAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,EAAY,CAAC;AAE7D,SAAS,eAAe,CAAC,IAAgB,EAAE,SAA4B;IACrE,IAAI,CAAC,QAAQ,CACX,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAChB,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC;QACpC,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;KACxE,CAAC,CACH,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAe,YAAY,EAAE,KAAK,CAAC,CAAC;IAC3E,IAAI,cAAc,CAAC,cAAc,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,QAAQ,CACX,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE;gBACP,IAAI,EAAE,CAAC;gBACP,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;gBACzB,MAAM,EAAE,cAAc,CAAC,cAAc;aACtC;SACF,CAAC,CACH,CAAC;KACH;AACH,CAAC;AAMD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAa,EAAe,EAAE;IAC9D,OAAO;QACL,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACvB,GAAG,mBAAmB;YACtB,OAAO;SACR,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC;YACR;gBACE,GAAG,EAAE,SAAS;gBACd,cAAc,EAAE,IAAI;gBACpB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;oBACZ,sEAAsE;oBACtE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;oBAClD,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,EAAE;wBACxB,OAAO,KAAK,CAAC;qBACd;oBAED,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC9B,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;YACD;gBACE,GAAG,EAAE,aAAa;gBAClB,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,cAAc;gBACrB,cAAc,EAAE,IAAI;gBACpB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;oBACZ,sEAAsE;oBACtE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;oBAClD,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,EAAE;wBACxB,OAAO,KAAK,CAAC;qBACd;oBAED,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC9B,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;YACD;gBACE,GAAG,EAAE,WAAW;gBAChB,cAAc,EAAE,IAAI;gBACpB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;oBACZ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;oBAClD,sEAAsE;oBACtE,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;wBAC5C,OAAO,KAAK,CAAC;qBACd;oBACD,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;oBAElC,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;YACD;gBACE,GAAG,EAAE,eAAe;gBACpB,GAAG,EAAE,gBAAgB;gBACrB,KAAK,EAAE,gBAAgB;gBACvB,cAAc,EAAE,IAAI;gBACpB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;oBACZ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;oBAClD,sEAAsE;oBACtE,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;wBAC5C,OAAO,KAAK,CAAC;qBACd;oBACD,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;oBAElC,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC;KACH,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { CypherParser } from '@neo4j-cypher/language-support';
|
|
1
|
+
export { CypherParser, _internalFeatureFlags, } from '@neo4j-cypher/language-support';
|
|
2
2
|
export { CypherEditor } from './CypherEditor';
|
|
3
3
|
export { cypher } from './lang-cypher/langCypher';
|
|
4
4
|
export { darkThemeConstants, lightThemeConstants } from './themes';
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { CypherParser } from '@neo4j-cypher/language-support';
|
|
1
|
+
export { CypherParser, _internalFeatureFlags, } from '@neo4j-cypher/language-support';
|
|
2
2
|
export { CypherEditor } from './CypherEditor';
|
|
3
3
|
export { cypher } from './lang-cypher/langCypher';
|
|
4
4
|
export { darkThemeConstants, lightThemeConstants } from './themes';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
import { CompletionSource } from '@codemirror/autocomplete';
|
|
1
|
+
import { Completion, CompletionSource } from '@codemirror/autocomplete';
|
|
2
2
|
import type { CypherConfig } from './langCypher';
|
|
3
|
+
export declare const completionStyles: (completion: Completion & {
|
|
4
|
+
deprecated?: boolean;
|
|
5
|
+
}) => string;
|
|
3
6
|
export declare const cypherAutocomplete: (config: CypherConfig) => CompletionSource;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { snippet } from '@codemirror/autocomplete';
|
|
1
|
+
import { snippet, } from '@codemirror/autocomplete';
|
|
2
2
|
import { autocomplete } from '@neo4j-cypher/language-support';
|
|
3
|
-
import { CompletionItemKind } from 'vscode-languageserver-types';
|
|
3
|
+
import { CompletionItemKind, CompletionItemTag, } from 'vscode-languageserver-types';
|
|
4
|
+
import { getDocString } from './utils';
|
|
4
5
|
const completionKindToCodemirrorIcon = (c) => {
|
|
5
6
|
const map = {
|
|
6
7
|
[CompletionItemKind.Text]: 'Text',
|
|
@@ -32,10 +33,18 @@ const completionKindToCodemirrorIcon = (c) => {
|
|
|
32
33
|
};
|
|
33
34
|
return map[c];
|
|
34
35
|
};
|
|
36
|
+
export const completionStyles = (completion) => {
|
|
37
|
+
if (completion.deprecated) {
|
|
38
|
+
return 'cm-deprecated-completion';
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
35
44
|
export const cypherAutocomplete = (config) => (context) => {
|
|
36
|
-
const
|
|
45
|
+
const documentText = context.state.doc.toString();
|
|
37
46
|
const triggerCharacters = ['.', ':', '{', '$', ')'];
|
|
38
|
-
const lastCharacter =
|
|
47
|
+
const lastCharacter = documentText.at(context.pos - 1);
|
|
39
48
|
const lastWord = context.matchBefore(/\w*/);
|
|
40
49
|
const inWord = lastWord.from !== lastWord.to;
|
|
41
50
|
const shouldTriggerCompletion = inWord || context.explicit || triggerCharacters.includes(lastCharacter);
|
|
@@ -45,18 +54,71 @@ export const cypherAutocomplete = (config) => (context) => {
|
|
|
45
54
|
if (!shouldTriggerCompletion) {
|
|
46
55
|
return null;
|
|
47
56
|
}
|
|
48
|
-
const options = autocomplete(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
const options = autocomplete(documentText, config.schema ?? {}, context.pos, context.explicit);
|
|
58
|
+
if (config.featureFlags?.signatureInfoOnAutoCompletions) {
|
|
59
|
+
return {
|
|
60
|
+
from: context.matchBefore(/(\w|\$)*$/).from,
|
|
61
|
+
options: options.map((o) => {
|
|
62
|
+
let maybeInfo = {};
|
|
63
|
+
let emptyInfo = true;
|
|
64
|
+
const newDiv = document.createElement('div');
|
|
65
|
+
if (o.signature) {
|
|
66
|
+
const header = document.createElement('p');
|
|
67
|
+
header.setAttribute('class', 'cm-completionInfo-signature');
|
|
68
|
+
header.textContent = o.signature;
|
|
69
|
+
if (header.textContent.length > 0) {
|
|
70
|
+
emptyInfo = false;
|
|
71
|
+
newDiv.appendChild(header);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (o.documentation) {
|
|
75
|
+
const paragraph = document.createElement('p');
|
|
76
|
+
paragraph.textContent = getDocString(o.documentation);
|
|
77
|
+
if (paragraph.textContent.length > 0) {
|
|
78
|
+
emptyInfo = false;
|
|
79
|
+
newDiv.appendChild(paragraph);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (!emptyInfo) {
|
|
83
|
+
maybeInfo = {
|
|
84
|
+
info: () => Promise.resolve(newDiv),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const deprecated = o.tags?.find((tag) => tag === CompletionItemTag.Deprecated) ??
|
|
88
|
+
false;
|
|
89
|
+
// The negative boost moves the deprecation down the list
|
|
90
|
+
// so we offer the user the completions that are
|
|
91
|
+
// deprecated the last
|
|
92
|
+
const maybeDeprecated = deprecated
|
|
93
|
+
? { boost: -99, deprecated: true }
|
|
94
|
+
: {};
|
|
95
|
+
return {
|
|
96
|
+
label: o.label,
|
|
97
|
+
type: completionKindToCodemirrorIcon(o.kind),
|
|
98
|
+
apply: o.kind === CompletionItemKind.Snippet
|
|
99
|
+
? // codemirror requires an empty snippet space to be able to tab out of the completion
|
|
100
|
+
snippet((o.insertText ?? o.label) + '${}')
|
|
101
|
+
: undefined,
|
|
102
|
+
detail: o.detail,
|
|
103
|
+
...maybeDeprecated,
|
|
104
|
+
...maybeInfo,
|
|
105
|
+
};
|
|
106
|
+
}),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
return {
|
|
111
|
+
from: context.matchBefore(/(\w|\$)*$/).from,
|
|
112
|
+
options: options.map((o) => ({
|
|
113
|
+
label: o.label,
|
|
114
|
+
type: completionKindToCodemirrorIcon(o.kind),
|
|
115
|
+
apply: o.kind === CompletionItemKind.Snippet
|
|
116
|
+
? // codemirror requires an empty snippet space to be able to tab out of the completion
|
|
117
|
+
snippet((o.insertText ?? o.label) + '${}')
|
|
118
|
+
: undefined,
|
|
119
|
+
detail: o.detail,
|
|
120
|
+
})),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
61
123
|
};
|
|
62
124
|
//# sourceMappingURL=autocomplete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../../src/lang-cypher/autocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../../src/lang-cypher/autocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,GACR,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,8BAA8B,GAAG,CAAC,CAAqB,EAAE,EAAE;IAC/D,MAAM,GAAG,GAAoD;QAC3D,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM;QACjC,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,QAAQ;QACrC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,UAAU;QACzC,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,aAAa;QAC/C,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,OAAO;QACnC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,UAAU;QACzC,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,OAAO;QACnC,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,WAAW;QAC3C,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,QAAQ;QACrC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,UAAU;QACzC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM;QACjC,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,OAAO;QACnC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM;QACjC,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,SAAS;QACvC,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,SAAS;QACvC,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,OAAO;QACnC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM;QACjC,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,WAAW;QAC3C,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,QAAQ;QACrC,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,YAAY;QAC7C,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,UAAU;QACzC,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,QAAQ;QACrC,sFAAsF;QACtF,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,SAAS;QACrC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,UAAU;QACzC,CAAC,kBAAkB,CAAC,aAAa,CAAC,EAAE,eAAe;KACpD,CAAC;IAEF,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAEf,CAAC,UAAU,EAAE,EAAE;IAC3B,IAAI,UAAU,CAAC,UAAU,EAAE;QACzB,OAAO,0BAA0B,CAAC;KACnC;SAAM;QACL,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAC7B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE;IACtB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAElD,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;IAE7C,MAAM,uBAAuB,GAC3B,MAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE1E,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC/C,OAAO,IAAI,CAAC;KACb;IAED,IAAI,CAAC,uBAAuB,EAAE;QAC5B,OAAO,IAAI,CAAC;KACb;IAED,MAAM,OAAO,GAAG,YAAY,CAC1B,YAAY,EACZ,MAAM,CAAC,MAAM,IAAI,EAAE,EACnB,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,QAAQ,CACjB,CAAC;IAEF,IAAI,MAAM,CAAC,YAAY,EAAE,8BAA8B,EAAE;QACvD,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI;YAC3C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzB,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,SAAS,GAAG,IAAI,CAAC;gBACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAE7C,IAAI,CAAC,CAAC,SAAS,EAAE;oBACf,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC3C,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;oBAC5D,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC;oBACjC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjC,SAAS,GAAG,KAAK,CAAC;wBAClB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;qBAC5B;iBACF;gBAED,IAAI,CAAC,CAAC,aAAa,EAAE;oBACnB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC9C,SAAS,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;oBACtD,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wBACpC,SAAS,GAAG,KAAK,CAAC;wBAClB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;qBAC/B;iBACF;gBAED,IAAI,CAAC,SAAS,EAAE;oBACd,SAAS,GAAG;wBACV,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;qBACpC,CAAC;iBACH;gBACD,MAAM,UAAU,GACd,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,iBAAiB,CAAC,UAAU,CAAC;oBAC3D,KAAK,CAAC;gBACR,yDAAyD;gBACzD,gDAAgD;gBAChD,sBAAsB;gBACtB,MAAM,eAAe,GAAG,UAAU;oBAChC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;oBAClC,CAAC,CAAC,EAAE,CAAC;gBAEP,OAAO;oBACL,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC5C,KAAK,EACH,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,OAAO;wBACnC,CAAC,CAAC,qFAAqF;4BACrF,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;wBAC5C,CAAC,CAAC,SAAS;oBACf,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,GAAG,eAAe;oBAClB,GAAG,SAAS;iBACb,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;KACH;SAAM;QACL,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI;YAC3C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5C,KAAK,EACH,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,OAAO;oBACnC,CAAC,CAAC,qFAAqF;wBACrF,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;oBAC5C,CAAC,CAAC,SAAS;gBACf,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC;SACJ,CAAC;KACH;AACH,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { tags } from '@lezer/highlight';
|
|
2
|
-
import { applySyntaxColouring } from '@neo4j-cypher/language-support';
|
|
2
|
+
import { applySyntaxColouring, CypherTokenType, } from '@neo4j-cypher/language-support';
|
|
3
3
|
import { tokenTypeToStyleTag } from './constants';
|
|
4
4
|
const cypherQueryWithAllTokenTypes = `MATCH (variable :Label)-[:REL_TYPE]->()
|
|
5
5
|
WHERE variable.property = "String"
|
|
@@ -51,7 +51,7 @@ test('correctly parses all cypher token types to style tags', () => {
|
|
|
51
51
|
'punctuation',
|
|
52
52
|
]);
|
|
53
53
|
const styleTags = tokenTypes.map((tokenType) => {
|
|
54
|
-
if (tokenType ===
|
|
54
|
+
if (tokenType === CypherTokenType.none)
|
|
55
55
|
return undefined;
|
|
56
56
|
return tokenTypeToStyleTag[tokenType];
|
|
57
57
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contants.test.js","sourceRoot":"","sources":["../../src/lang-cypher/contants.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"contants.test.js","sourceRoot":"","sources":["../../src/lang-cypher/contants.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,4BAA4B,GAAG;;;;;iBAKpB,CAAC;AAElB,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;IACjE,MAAM,MAAM,GAAG,oBAAoB,CAAC,4BAA4B,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;QACzB,SAAS;QACT,SAAS;QACT,UAAU;QACV,UAAU;QACV,OAAO;QACP,SAAS;QACT,WAAW;QACX,SAAS;QACT,UAAU;QACV,OAAO;QACP,SAAS;QACT,WAAW;QACX,WAAW;QACX,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,eAAe;QACf,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,SAAS;QACT,SAAS;QACT,UAAU;QACV,gBAAgB;QAChB,SAAS;QACT,SAAS;QACT,aAAa;QACb,YAAY;QACZ,UAAU;QACV,eAAe;QACf,SAAS;QACT,UAAU;QACV,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAC7C,IAAI,SAAS,KAAK,eAAe,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QACzD,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG;QAClB,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,YAAY;QACjB,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,YAAY;QACjB,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,YAAY;QACjB,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,MAAM;QACX,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;QAChC,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;QAChC,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,IAAI;QACT,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,IAAI;QACT,IAAI,CAAC,IAAI;QACT,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,MAAM;QACX,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,YAAY;QACjB,IAAI,CAAC,WAAW;KACjB,CAAC;IAEF,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QACpC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|