mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-20 03:12:15 +00:00
refactor(editor): Update Code node editor for native Python runner (#18538)
This commit is contained in:
@@ -50,19 +50,21 @@ import {
|
||||
} from 'vue';
|
||||
import { useCompleter } from '../components/CodeNodeEditor/completer';
|
||||
import { mappingDropCursor } from '../plugins/codemirror/dragAndDrop';
|
||||
import { languageFacet, type CodeEditorLanguage } from '../plugins/codemirror/format';
|
||||
import { languageFacet } from '../plugins/codemirror/format';
|
||||
import debounce from 'lodash/debounce';
|
||||
import { ignoreUpdateAnnotation } from '../utils/forceParse';
|
||||
import type { TargetNodeParameterContext } from '@/Interface';
|
||||
import type { CodeNodeLanguageOption } from '@/components/CodeNodeEditor/CodeNodeEditor.vue';
|
||||
|
||||
export type CodeEditorLanguageParamsMap = {
|
||||
json: {};
|
||||
html: {};
|
||||
javaScript: { mode: CodeExecutionMode };
|
||||
python: { mode: CodeExecutionMode };
|
||||
pythonNative: { mode: CodeExecutionMode };
|
||||
};
|
||||
|
||||
export const useCodeEditor = <L extends CodeEditorLanguage>({
|
||||
export const useCodeEditor = <L extends CodeNodeLanguageOption>({
|
||||
editorRef,
|
||||
editorValue,
|
||||
language,
|
||||
@@ -116,7 +118,7 @@ export const useCodeEditor = <L extends CodeEditorLanguage>({
|
||||
targetNodeParameterContext,
|
||||
);
|
||||
|
||||
function getInitialLanguageExtensions(lang: CodeEditorLanguage): Extension[] {
|
||||
function getInitialLanguageExtensions(lang: CodeNodeLanguageOption): Extension[] {
|
||||
switch (lang) {
|
||||
case 'javaScript':
|
||||
return [javascript()];
|
||||
@@ -128,7 +130,9 @@ export const useCodeEditor = <L extends CodeEditorLanguage>({
|
||||
async function getFullLanguageExtensions(): Promise<Extension[]> {
|
||||
if (!editor.value) return [];
|
||||
const lang = toValue(language);
|
||||
const langExtensions: Extension[] = [languageFacet.of(lang)];
|
||||
const langExtensions: Extension[] = [
|
||||
languageFacet.of(lang === 'pythonNative' ? 'python' : lang),
|
||||
];
|
||||
|
||||
switch (lang) {
|
||||
case 'javaScript': {
|
||||
@@ -136,9 +140,10 @@ export const useCodeEditor = <L extends CodeEditorLanguage>({
|
||||
langExtensions.push(tsExtension);
|
||||
break;
|
||||
}
|
||||
case 'python': {
|
||||
case 'python':
|
||||
case 'pythonNative': {
|
||||
const pythonAutocomplete = useCompleter(mode, editor.value ?? null).autocompletionExtension(
|
||||
'python',
|
||||
lang,
|
||||
);
|
||||
langExtensions.push([python(), pythonAutocomplete]);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user