Я уже довольно давно пытаюсь найти решение для реализации более расширенного автодополнения для Python, но пока не смог этого сделать. Я хотел бы добиться того же результата автозаполнения, что и javascript. Я думал, что это должно быть легко, но начал натыкаться на статьи, в которых говорится, что для этой цели нужно развернуть языковой сервер. Неужели нет более простого способа добиться автодополнения (например, вывести на экран список методов созданного пользователем класса)? Я нашел следующий метод (который, кстати, работает не совсем корректно и к тому же все подсказки нужно реализовывать вручную):
import { FC, useEffect } from "react";
import * as monaco from "monaco-editor";
function createDependencyProposals(range) {
// returning a static list of proposals, not even looking at the prefix (filtering is done by the Monaco editor),
// here you could do a server side lookup
return [
{
label: "test",
insertText: "test",
range: range,
},
];
}
export const MonacoEditorComponent: FC = () => {
let flag = false;
useEffect(() => {
if (!flag) {
monaco.languages.registerCompletionItemProvider("python", {
provideCompletionItems: function (model, position) {
const word = model.getWordUntilPosition(position);
const range = {
startLineNumber: position.lineNumber,
endLineNumber: position.lineNumber,
startColumn: word.startColumn,
endColumn: word.endColumn,
};
return {
suggestions: createDependencyProposals(range),
};
},
});
monaco.editor.create(document.getElementById("container"), {
value: "def something():\n\treturn 5\n\n",
language: "python",
});
}
flag = true;
}, []);
return ;
};
Подробнее здесь: https://stackoverflow.com/questions/790 ... aco-editor
Как включить хорошее автодополнение для Python в редакторе реакции/монако? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение