@neo4j-cypher/react-codemirror 2.0.0-next.41 → 2.0.0-next.42
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 +14 -0
- package/dist/src/CypherEditor.d.ts +8 -4
- package/dist/src/CypherEditor.js +9 -1
- package/dist/src/CypherEditor.js.map +1 -1
- package/dist/src/CypherEditor.test.js +1 -0
- package/dist/src/CypherEditor.test.js.map +1 -1
- package/dist/src/index.d.ts +8 -3
- package/dist/src/index.js +3 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/lang-cypher/createCypherTheme.js +46 -0
- package/dist/src/lang-cypher/createCypherTheme.js.map +1 -1
- package/dist/src/lang-cypher/hover/hover.d.ts +3 -0
- package/dist/src/lang-cypher/hover/hover.js +26 -0
- package/dist/src/lang-cypher/hover/hover.js.map +1 -0
- package/dist/src/lang-cypher/hover/hoverRender.d.ts +9 -0
- package/dist/src/lang-cypher/hover/hoverRender.js +142 -0
- package/dist/src/lang-cypher/hover/hoverRender.js.map +1 -0
- package/dist/src/lang-cypher/hover/hoverRender.test.js +123 -0
- package/dist/src/lang-cypher/hover/hoverRender.test.js.map +1 -0
- package/dist/src/lang-cypher/langCypher.js +3 -0
- package/dist/src/lang-cypher/langCypher.js.map +1 -1
- package/dist/src/lang-cypher/lintWorker.mjs +160 -162
- package/dist/src/lang-cypher/signatureHelp.js +13 -23
- package/dist/src/lang-cypher/signatureHelp.js.map +1 -1
- package/dist/src/lang-cypher/tooltipHighlighting.d.ts +21 -0
- package/dist/src/lang-cypher/tooltipHighlighting.js +76 -0
- package/dist/src/lang-cypher/tooltipHighlighting.js.map +1 -0
- package/dist/src/lang-cypher/tooltipHighlighting.test.js +63 -0
- package/dist/src/lang-cypher/tooltipHighlighting.test.js.map +1 -0
- package/dist/src/{e2e_tests → tests/e2e}/autoCompletion.spec.js +1 -1
- package/dist/src/tests/e2e/autoCompletion.spec.js.map +1 -0
- package/dist/src/{e2e_tests → tests/e2e}/configuration.spec.js +1 -1
- package/dist/src/tests/e2e/configuration.spec.js.map +1 -0
- package/dist/src/{e2e_tests → tests/e2e}/debounce.spec.js +2 -2
- package/dist/src/tests/e2e/debounce.spec.js.map +1 -0
- package/dist/src/tests/e2e/e2eUtils.js.map +1 -0
- package/dist/src/{e2e_tests → tests/e2e}/extraKeybindings.spec.js +1 -1
- package/dist/src/tests/e2e/extraKeybindings.spec.js.map +1 -0
- package/dist/src/{e2e_tests → tests/e2e}/historyNavigation.spec.js +1 -1
- package/dist/src/tests/e2e/historyNavigation.spec.js.map +1 -0
- package/dist/src/{e2e_tests → tests/e2e}/sanityChecks.spec.js +1 -1
- package/dist/src/tests/e2e/sanityChecks.spec.js.map +1 -0
- package/dist/src/{e2e_tests → tests/e2e}/signatureHelp.spec.js +1 -1
- package/dist/src/tests/e2e/signatureHelp.spec.js.map +1 -0
- package/dist/src/{e2e_tests → tests/e2e}/snippets.spec.js +1 -1
- package/dist/src/tests/e2e/snippets.spec.js.map +1 -0
- package/dist/src/tests/e2e/syntaxHighlighting.spec.d.ts +1 -0
- package/dist/src/{e2e_tests → tests/e2e}/syntaxHighlighting.spec.js +2 -2
- package/dist/src/tests/e2e/syntaxHighlighting.spec.js.map +1 -0
- package/dist/src/tests/e2e/syntaxValidation.spec.d.ts +1 -0
- package/dist/src/{e2e_tests → tests/e2e}/syntaxValidation.spec.js +1 -1
- package/dist/src/tests/e2e/syntaxValidation.spec.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/vitest.config.d.mts +2 -0
- package/dist/vitest.config.mjs +16 -0
- package/dist/vitest.config.mjs.map +1 -0
- package/package.json +6 -5
- package/src/CypherEditor.test.tsx +1 -0
- package/src/CypherEditor.tsx +26 -3
- package/src/index.ts +17 -3
- package/src/lang-cypher/createCypherTheme.ts +47 -0
- package/src/lang-cypher/hover/hover.ts +32 -0
- package/src/lang-cypher/hover/hoverRender.test.ts +176 -0
- package/src/lang-cypher/hover/hoverRender.ts +198 -0
- package/src/lang-cypher/langCypher.ts +3 -0
- package/src/lang-cypher/lintWorker.mjs +160 -162
- package/src/lang-cypher/signatureHelp.ts +19 -24
- package/src/lang-cypher/tooltipHighlighting.test.ts +78 -0
- package/src/lang-cypher/tooltipHighlighting.ts +119 -0
- package/src/{e2e_tests → tests/e2e}/autoCompletion.spec.tsx +1 -1
- package/src/{e2e_tests → tests/e2e}/configuration.spec.tsx +1 -1
- package/src/{e2e_tests → tests/e2e}/debounce.spec.tsx +2 -2
- package/src/{e2e_tests → tests/e2e}/extraKeybindings.spec.tsx +1 -1
- package/src/{e2e_tests → tests/e2e}/historyNavigation.spec.tsx +1 -1
- package/src/{e2e_tests → tests/e2e}/sanityChecks.spec.tsx +1 -1
- package/src/{e2e_tests → tests/e2e}/signatureHelp.spec.tsx +1 -1
- package/src/{e2e_tests → tests/e2e}/snippets.spec.tsx +1 -1
- package/src/{e2e_tests → tests/e2e}/syntaxHighlighting.spec.tsx +2 -2
- package/src/{e2e_tests → tests/e2e}/syntaxValidation.spec.tsx +1 -1
- package/dist/src/e2e_tests/autoCompletion.spec.js.map +0 -1
- package/dist/src/e2e_tests/configuration.spec.js.map +0 -1
- package/dist/src/e2e_tests/debounce.spec.js.map +0 -1
- package/dist/src/e2e_tests/e2eUtils.js.map +0 -1
- package/dist/src/e2e_tests/extraKeybindings.spec.js.map +0 -1
- package/dist/src/e2e_tests/historyNavigation.spec.js.map +0 -1
- package/dist/src/e2e_tests/performanceTest.spec.d.ts +0 -6
- package/dist/src/e2e_tests/performanceTest.spec.js +0 -97
- package/dist/src/e2e_tests/performanceTest.spec.js.map +0 -1
- package/dist/src/e2e_tests/sanityChecks.spec.js.map +0 -1
- package/dist/src/e2e_tests/signatureHelp.spec.js.map +0 -1
- package/dist/src/e2e_tests/snippets.spec.js.map +0 -1
- package/dist/src/e2e_tests/syntaxHighlighting.spec.js.map +0 -1
- package/dist/src/e2e_tests/syntaxValidation.spec.js.map +0 -1
- package/src/e2e_tests/performanceTest.spec.tsx +0 -163
- /package/dist/src/{e2e_tests/autoCompletion.spec.d.ts → lang-cypher/hover/hoverRender.test.d.ts} +0 -0
- /package/dist/src/{e2e_tests/configuration.spec.d.ts → lang-cypher/tooltipHighlighting.test.d.ts} +0 -0
- /package/dist/src/{e2e_tests/debounce.spec.d.ts → tests/e2e/autoCompletion.spec.d.ts} +0 -0
- /package/dist/src/{e2e_tests/extraKeybindings.spec.d.ts → tests/e2e/configuration.spec.d.ts} +0 -0
- /package/dist/src/{e2e_tests/historyNavigation.spec.d.ts → tests/e2e/debounce.spec.d.ts} +0 -0
- /package/dist/src/{e2e_tests → tests/e2e}/e2eUtils.d.ts +0 -0
- /package/dist/src/{e2e_tests → tests/e2e}/e2eUtils.js +0 -0
- /package/dist/src/{e2e_tests/sanityChecks.spec.d.ts → tests/e2e/extraKeybindings.spec.d.ts} +0 -0
- /package/dist/src/{e2e_tests/signatureHelp.spec.d.ts → tests/e2e/historyNavigation.spec.d.ts} +0 -0
- /package/dist/src/{e2e_tests/snippets.spec.d.ts → tests/e2e/sanityChecks.spec.d.ts} +0 -0
- /package/dist/src/{e2e_tests/syntaxHighlighting.spec.d.ts → tests/e2e/signatureHelp.spec.d.ts} +0 -0
- /package/dist/src/{e2e_tests/syntaxValidation.spec.d.ts → tests/e2e/snippets.spec.d.ts} +0 -0
- /package/src/{e2e_tests → tests/e2e}/e2eUtils.ts +0 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
// @vitest-environment jsdom
|
|
2
|
+
import { CypherLanguageService, testData, } from '@neo4j-cypher/language-support';
|
|
3
|
+
import { describe, expect, test } from 'vitest';
|
|
4
|
+
import { renderHoverInfo } from './hoverRender';
|
|
5
|
+
function methodHover(query) {
|
|
6
|
+
const languageService = new CypherLanguageService();
|
|
7
|
+
return languageService.hoverInfo(query, {
|
|
8
|
+
caretPosition: query.indexOf('(') - 1,
|
|
9
|
+
dbSchema: testData.mockSchema,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
function renderMethodHover(query) {
|
|
13
|
+
return renderHoverInfo(methodHover(query));
|
|
14
|
+
}
|
|
15
|
+
describe('hover info html rendering', () => {
|
|
16
|
+
function highlightedFragments(info) {
|
|
17
|
+
const seen = [];
|
|
18
|
+
renderHoverInfo(info, (code, kind, target) => {
|
|
19
|
+
seen.push([code, kind]);
|
|
20
|
+
target.textContent = code;
|
|
21
|
+
});
|
|
22
|
+
return seen;
|
|
23
|
+
}
|
|
24
|
+
test('passes the fragment kind of each cypher block to the highlighter', () => {
|
|
25
|
+
expect(highlightedFragments({
|
|
26
|
+
kind: 'variable',
|
|
27
|
+
variable: 'n',
|
|
28
|
+
types: ['Node'],
|
|
29
|
+
labelExpression: '(Person | Pet)',
|
|
30
|
+
})).toEqual([['(Person | Pet)', 'labelExpression']]);
|
|
31
|
+
expect(highlightedFragments(methodHover('RETURN abs(1)'))).toEqual([
|
|
32
|
+
['abs(input :: INTEGER | FLOAT) :: INTEGER | FLOAT', 'function'],
|
|
33
|
+
]);
|
|
34
|
+
expect(highlightedFragments(methodHover('CALL db.labels()'))).toEqual([
|
|
35
|
+
['db.labels() :: (label :: STRING)', 'procedure'],
|
|
36
|
+
]);
|
|
37
|
+
});
|
|
38
|
+
test('renders a variable hover', () => {
|
|
39
|
+
expect(renderHoverInfo({
|
|
40
|
+
kind: 'variable',
|
|
41
|
+
variable: 'n',
|
|
42
|
+
types: ['Node'],
|
|
43
|
+
labelExpression: '(Person | Pet)',
|
|
44
|
+
}).innerHTML).toBe('<p><code>n: Node</code></p><pre><code>(Person | Pet)</code></pre>');
|
|
45
|
+
expect(renderHoverInfo({ kind: 'variable', variable: 'x', types: ['Integer'] })
|
|
46
|
+
.innerHTML).toBe('<p><code>x: Integer</code></p>');
|
|
47
|
+
});
|
|
48
|
+
test('renders a function hover', () => {
|
|
49
|
+
expect(renderMethodHover('RETURN toFloat(1)').innerHTML).toBe([
|
|
50
|
+
'<pre><code>toFloat(input :: STRING | INTEGER | FLOAT) :: FLOAT</code></pre>',
|
|
51
|
+
'<p>Converts a <code>STRING</code>, <code>INTEGER</code> or <code>FLOAT</code> value to a <code>FLOAT</code> value.</p>',
|
|
52
|
+
'<p><strong>Parameters</strong></p>',
|
|
53
|
+
'<ul><li><code>input</code> - A value to be converted into a float.</li></ul>',
|
|
54
|
+
'<p><strong>Returns:</strong> <code>FLOAT</code></p>',
|
|
55
|
+
].join(''));
|
|
56
|
+
});
|
|
57
|
+
test('renders a procedure hover', () => {
|
|
58
|
+
expect(renderMethodHover('CALL db.labels()').innerHTML).toBe([
|
|
59
|
+
'<pre><code>db.labels() :: (label :: STRING)</code></pre>',
|
|
60
|
+
"<p>List all labels attached to nodes within a database according to the user's access rights. The procedure returns empty results if the user is not authorized to view those labels.</p>",
|
|
61
|
+
'<p><strong>Returns</strong></p>',
|
|
62
|
+
'<ul><li><code>label</code> - A label within the database.</li></ul>',
|
|
63
|
+
].join(''));
|
|
64
|
+
});
|
|
65
|
+
test('italicises the deprecation marker of a deprecated method', () => {
|
|
66
|
+
expect(renderMethodHover('CYPHER 5 RETURN apoc.create.uuid()').innerHTML).toContain('<p>(<em>deprecated</em>) Returns a UUID.</p>');
|
|
67
|
+
});
|
|
68
|
+
// The wildcards of dbms.queryJmx' descriptions are shown as written, both
|
|
69
|
+
// in prose and inside a code span
|
|
70
|
+
test('renders the wildcards of a procedure description', () => {
|
|
71
|
+
const html = renderMethodHover('CALL dbms.queryJmx()').innerHTML;
|
|
72
|
+
expect(html).toContain('<p>Query JMX management data by domain and name. For instance, use <code>*:*</code> to find all JMX beans.</p>');
|
|
73
|
+
expect(html).toContain("<li><code>query</code> - A query for MBeans on this MBeanServer (e.g. '*:*,name=*neo4j*' for all metrics in neo4j database).</li>");
|
|
74
|
+
});
|
|
75
|
+
test('renders the paragraphs, bullet list and italics of a procedure description', () => {
|
|
76
|
+
const html = renderMethodHover('CALL db.index.fulltext.queryNodes()').innerHTML;
|
|
77
|
+
expect(html).toContain('Valid <em>key: value</em> pairs');
|
|
78
|
+
expect(html).toContain([
|
|
79
|
+
'<ul>',
|
|
80
|
+
"<li>'skip' -- to skip the top N results.</li>",
|
|
81
|
+
"<li>'limit' -- to limit the number of results returned.</li>",
|
|
82
|
+
"<li>'analyzer' -- to use the specified analyzer as a search analyzer for this query.</li>",
|
|
83
|
+
'</ul>',
|
|
84
|
+
'<p>The <code>options</code> map and any of the keys are optional.',
|
|
85
|
+
].join(''));
|
|
86
|
+
});
|
|
87
|
+
test('renders a parameter that carries its own layout as a code block', () => {
|
|
88
|
+
expect(renderMethodHover('CALL apoc.export.csv.all()').innerHTML).toContain([
|
|
89
|
+
'<ul><li><code>file</code> - The name of the file to which the data will be exported.</li>',
|
|
90
|
+
'<li><code>config</code> -<pre><code>{\n',
|
|
91
|
+
' stream = false :: BOOLEAN,\n',
|
|
92
|
+
].join(''));
|
|
93
|
+
});
|
|
94
|
+
// Schema descriptions list values such as 'AS_PATH_LIST', which must not
|
|
95
|
+
// turn into emphasis
|
|
96
|
+
test('leaves the underscores inside words alone', () => {
|
|
97
|
+
const description = "JSON path options: ('ALWAYS_RETURN_LIST', 'AS_PATH_LIST', 'DEFAULT_PATH_LEAF_TO_NULL').";
|
|
98
|
+
const dom = renderHoverInfo({
|
|
99
|
+
kind: 'function',
|
|
100
|
+
signature: 'f(pathOptions :: LIST<STRING>) :: ANY',
|
|
101
|
+
description: '',
|
|
102
|
+
isDeprecated: false,
|
|
103
|
+
parameters: [{ name: 'pathOptions', description }],
|
|
104
|
+
returnType: 'ANY',
|
|
105
|
+
});
|
|
106
|
+
expect(dom.querySelector('em')).toBeNull();
|
|
107
|
+
expect(dom.querySelector('li').textContent).toBe(`pathOptions - ${description}`);
|
|
108
|
+
});
|
|
109
|
+
test('never renders descriptions as html', () => {
|
|
110
|
+
const dom = renderHoverInfo({
|
|
111
|
+
kind: 'procedure',
|
|
112
|
+
signature: 'p()',
|
|
113
|
+
description: '<img src=x onerror=alert(1)>',
|
|
114
|
+
isDeprecated: false,
|
|
115
|
+
parameters: [],
|
|
116
|
+
returnValues: [{ name: 'r', description: '<b>bold</b>' }],
|
|
117
|
+
});
|
|
118
|
+
expect(dom.querySelector('img')).toBeNull();
|
|
119
|
+
expect(dom.querySelector('b')).toBeNull();
|
|
120
|
+
expect(dom.textContent).toContain('<img src=x onerror=alert(1)>');
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
//# sourceMappingURL=hoverRender.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hoverRender.test.js","sourceRoot":"","sources":["../../../../src/lang-cypher/hover/hoverRender.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ import { completionStyles, cypherAutocomplete } from './autocomplete';
|
|
|
4
4
|
import { ParserAdapter } from './parser-adapter';
|
|
5
5
|
import { signatureHelpTooltip } from './signatureHelp';
|
|
6
6
|
import { cypherLinter } from './syntaxValidation';
|
|
7
|
+
import { hoverTooltip } from '@codemirror/view';
|
|
8
|
+
import { getHoverSource } from './hover/hover.js';
|
|
7
9
|
const facet = defineLanguageFacet({
|
|
8
10
|
commentTokens: { block: { open: '/*', close: '*/' }, line: '//' },
|
|
9
11
|
closeBrackets: { brackets: ['(', '[', '{', "'", '"', '`'] },
|
|
@@ -18,6 +20,7 @@ export function cypher(config) {
|
|
|
18
20
|
}),
|
|
19
21
|
cypherLinter(config),
|
|
20
22
|
signatureHelpTooltip(config),
|
|
23
|
+
hoverTooltip(getHoverSource(config)),
|
|
21
24
|
]);
|
|
22
25
|
}
|
|
23
26
|
//# sourceMappingURL=langCypher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langCypher.js","sourceRoot":"","sources":["../../../src/lang-cypher/langCypher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,KAAK,GAAG,mBAAmB,CAAC;IAChC,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;IACjE,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;CAC5D,CAAC,CAAC;AAcH,MAAM,UAAU,MAAM,CAAC,MAAoB;IACzC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAExE,OAAO,IAAI,eAAe,CAAC,cAAc,EAAE;QACzC,cAAc,CAAC;YACb,QAAQ,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACtC,WAAW,EAAE,gBAAgB;SAC9B,CAAC;QACF,YAAY,CAAC,MAAM,CAAC;QACpB,oBAAoB,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"langCypher.js","sourceRoot":"","sources":["../../../src/lang-cypher/langCypher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,KAAK,GAAG,mBAAmB,CAAC;IAChC,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;IACjE,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;CAC5D,CAAC,CAAC;AAcH,MAAM,UAAU,MAAM,CAAC,MAAoB;IACzC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAExE,OAAO,IAAI,eAAe,CAAC,cAAc,EAAE;QACzC,cAAc,CAAC;YACb,QAAQ,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACtC,WAAW,EAAE,gBAAgB;SAC9B,CAAC;QACF,YAAY,CAAC,MAAM,CAAC;QACpB,oBAAoB,CAAC,MAAM,CAAC;QAC5B,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;KACrC,CAAC,CAAC;AACL,CAAC"}
|