Skip to content

Commit 77709cd

Browse files
authored
fix(editor-preview-swagger-ui): fix jump to path feature (#4012)
Refs #3991
1 parent d54b8af commit 77709cd

File tree

31 files changed

+666
-777
lines changed

31 files changed

+666
-777
lines changed

package-lock.json

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

package.json

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,18 @@
5959
"@emotion/styled": "^11.10.5",
6060
"@mui/material": "^5.11.15",
6161
"@primer/octicons-react": "^18.1.0",
62-
"@swagger-api/apidom-core": "^0.69.1",
63-
"@swagger-api/apidom-ls": "^0.69.1",
64-
"@swagger-api/apidom-ns-api-design-systems": "^0.69.1",
65-
"@swagger-api/apidom-parser-adapter-api-design-systems-json": "^0.69.1",
66-
"@swagger-api/apidom-parser-adapter-api-design-systems-yaml": "^0.69.1",
67-
"@swagger-api/apidom-parser-adapter-asyncapi-json-2": "^0.69.1",
68-
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": "^0.69.1",
69-
"@swagger-api/apidom-parser-adapter-openapi-json-3-0": "^0.69.1",
70-
"@swagger-api/apidom-parser-adapter-openapi-json-3-1": "^0.69.1",
71-
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": "^0.69.1",
72-
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": "^0.69.1",
62+
"@swagger-api/apidom-core": "^0.69.2",
63+
"@swagger-api/apidom-json-pointer": "^0.69.2",
64+
"@swagger-api/apidom-ls": "^0.69.2",
65+
"@swagger-api/apidom-ns-api-design-systems": "^0.69.2",
66+
"@swagger-api/apidom-parser-adapter-api-design-systems-json": "^0.69.2",
67+
"@swagger-api/apidom-parser-adapter-api-design-systems-yaml": "^0.69.2",
68+
"@swagger-api/apidom-parser-adapter-asyncapi-json-2": "^0.69.2",
69+
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": "^0.69.2",
70+
"@swagger-api/apidom-parser-adapter-openapi-json-3-0": "^0.69.2",
71+
"@swagger-api/apidom-parser-adapter-openapi-json-3-1": "^0.69.2",
72+
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": "^0.69.2",
73+
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": "^0.69.2",
7374
"axios": "^1.3.4",
7475
"classnames": "^2.3.2",
7576
"deepmerge": "^4.3.1",

src/App.jsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import EditorContentOriginPlugin from './plugins/editor-content-origin/index.js'
2424
import EditorContentTypePlugin from './plugins/editor-content-type/index.js';
2525
import EditorContentPersistencePlugin from './plugins/editor-content-persistence/index.js';
2626
import EditorContentFixturesPlugin from './plugins/editor-content-fixtures/index.js';
27-
import EditorContentJumpFromPathToLinePlugin from './plugins/editor-content-jump-from-path-to-line/index.js';
2827
import SwaggerUIAdapterPlugin from './plugins/swagger-ui-adapter/index.js';
2928

3029
const SafeRenderPlugin = (system) =>
@@ -70,7 +69,6 @@ SwaggerEditor.plugins = {
7069
EditorContentType: EditorContentTypePlugin,
7170
EditorContentPersistence: EditorContentPersistencePlugin,
7271
EditorContentFixtures: EditorContentFixturesPlugin,
73-
EditorContentJumpFromPathToLine: EditorContentJumpFromPathToLinePlugin,
7472
EditorPreview: EditorPreviewPlugin,
7573
EditorPreviewSwaggerUI: EditorPreviewSwaggerUIPlugin,
7674
EditorPreviewAsyncAPI: EditorPreviewAsyncAPIPlugin,
@@ -93,7 +91,6 @@ SwaggerEditor.presets = {
9391
EditorContentTypePlugin,
9492
EditorContentPersistencePlugin,
9593
EditorContentFixturesPlugin,
96-
EditorContentJumpFromPathToLinePlugin,
9794
EditorPreviewPlugin,
9895
EditorPreviewSwaggerUIPlugin,
9996
EditorPreviewAsyncAPIPlugin,
@@ -117,7 +114,6 @@ SwaggerEditor.presets = {
117114
EditorContentTypePlugin,
118115
EditorContentPersistencePlugin,
119116
EditorContentFixturesPlugin,
120-
EditorContentJumpFromPathToLinePlugin,
121117
EditorPreviewPlugin,
122118
EditorPreviewSwaggerUIPlugin,
123119
EditorPreviewAsyncAPIPlugin,

src/plugins/editor-content-jump-from-path-to-line/components/JumpFromPathToLine.jsx

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

src/plugins/editor-content-jump-from-path-to-line/index.js

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

src/plugins/editor-content-jump-from-path-to-line/selectors.js

Lines changed: 0 additions & 61 deletions
This file was deleted.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import * as monaco from 'monaco-editor';
2+
3+
export const EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_STARTED =
4+
'editor_monaco_language_apidom_get_json_pointer_position_started';
5+
6+
export const EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_SUCCESS =
7+
'editor_monaco_language_apidom_get_json_pointer_position_success';
8+
9+
export const EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_FAILURE =
10+
'editor_monaco_language_apidom_get_json_pointer_position_failure';
11+
12+
export const getJsonPointerPositionStarted = ({ jsonPointer }) => ({
13+
type: EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_STARTED,
14+
payload: jsonPointer,
15+
});
16+
17+
export const getJsonPointerPositionSuccess = ({ position, jsonPointer }) => ({
18+
type: EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_SUCCESS,
19+
payload: position,
20+
meta: { jsonPointer },
21+
});
22+
23+
export const getJsonPointerPositionFailure = ({ error, jsonPointer }) => ({
24+
type: EDITOR_MONACO_LANGUAGE_APIDOM_GET_JSON_POINTER_POSITION_FAILURE,
25+
error: true,
26+
payload: error,
27+
meta: { jsonPointer },
28+
});
29+
30+
export const getJsonPointerPosition = (jsonPointer) => async (system) => {
31+
const { editorActions, fn } = system;
32+
33+
editorActions.getJsonPointerPositionStarted({ jsonPointer });
34+
35+
try {
36+
const [editor] = monaco.editor.getEditors();
37+
const model = editor.getModel();
38+
const worker = await fn.getApiDOMWorker()(model.uri);
39+
const { line, character } = await worker.getJsonPointerPosition(
40+
model.uri.toString(),
41+
jsonPointer
42+
);
43+
const position = { lineNumber: line, column: character - 1 };
44+
45+
return editorActions.getJsonPointerPositionSuccess({ position, jsonPointer });
46+
} catch (error) {
47+
return editorActions.getJsonPointerPositionFailure({ error, jsonPointer });
48+
}
49+
};

src/plugins/editor-monaco-language-apidom/index.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
import makeAfterLoad from './after-load.js';
2+
import {
3+
getJsonPointerPosition,
4+
getJsonPointerPositionStarted,
5+
getJsonPointerPositionSuccess,
6+
getJsonPointerPositionFailure,
7+
} from './actions/get-json-pointer-position.js';
28
import { getWorker } from './language/monaco.contribution.js';
39

410
const EditorMonacoLanguageApiDOMPlugin = (opts = {}) => {
@@ -9,6 +15,16 @@ const EditorMonacoLanguageApiDOMPlugin = (opts = {}) => {
915
fn: {
1016
getApiDOMWorker: getWorker,
1117
},
18+
statePlugins: {
19+
editor: {
20+
actions: {
21+
getJsonPointerPosition,
22+
getJsonPointerPositionStarted,
23+
getJsonPointerPositionSuccess,
24+
getJsonPointerPositionFailure,
25+
},
26+
},
27+
},
1228
});
1329

1430
return isCalledWithGetSystem ? plugin(opts) : plugin;

src/plugins/editor-monaco-language-apidom/language/actions/json-pointer-position.js

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

src/plugins/editor-monaco-language-apidom/language/monaco.contribution.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import { ModesRegistry } from 'monaco-editor/esm/vs/editor/common/languages/mode
55
import * as apidom from './apidom.js';
66
import { setupMode } from './apidom-mode.js';
77
import createDereferenceActionDescriptor from './actions/dereference.js';
8-
import jsonPointerPositionActionDescriptor from './actions/json-pointer-position.js';
98

109
export { getWorker } from './apidom-mode.js';
1110

@@ -102,8 +101,6 @@ const lazyMonacoContribution = ({ createData, system }) => {
102101
if (!editor.getAction(dereferenceActionDescriptor.id)) {
103102
disposables.push(editor.addAction(dereferenceActionDescriptor));
104103
}
105-
106-
disposables.push(editor.addAction(jsonPointerPositionActionDescriptor));
107104
})
108105
);
109106
})

0 commit comments

Comments
 (0)