Автозаполнение путем проверки определенного текста в фрагменте HTML [код VS]

(Это очень специфический вопрос, включая знание машинописных / сниппета / кода кода)

Я разрабатываю расширение для VS Code, так как HTML Intellisense не обнаруживает мои созданные компоненты (не знаю почему, но это один действительно большой проект), в котором я создаю пользовательские и динамические фрагменты для моих компонентов приложения, но помимо фактический фрагмент всего тела. Я не могу в определенном компоненте обнаружить его входные данные (например, когда в div Intellisense отображается класс, заголовок, что угодно ...). Я хочу сделать это для своих компонентов.

Вот небольшой пример использования моего кода:

    class ComponentSnippet {

        public prefix: string = "<my-component>";
        public details: string = "Component description";
        public inputs: string[] = ["[input1]=""", "[input2]="""];
        public outputs: string[] = ["(output1)="""];
    }    

function createComponentSnippet(): vscode.CompletionItem {

        let component: ComponentSnippet = new ComponentSnippet;
        component.getPrefix();
        component.getDetails();
        component.getInputs();
        component.getOutputs();

        let item = new vscode.CompletionItem('my-component-snippet', vscode.CompletionItemKind.Snippet);
        item.insertText = new vscode.SnippetString("<!--Description: " + component.details + "-->" +
                "
<" + component.prefix +
                "
	${1|" + allInputs + " |}" +
                "
	${2|" + allOutputs + " |}>" +
                "
	$3" +
                "
</" + component.prefix + ">$0");
        item.documentation = new vscode.MarkdownString("Component Snippet");
}

Результат:

<!--Description: Component description-->
<my-component
    [input1]="" [input2]=""
    (output1)="">

</my-component>

Теперь, и вот реальный вопрос , когда я нахожусь в своем компоненте и нажимаю Ctrl + Space для Intellisense, он говорит «Нет предложений», и нужно показать массивы входов и выходов, например, для класса и заголовка в div, как компонент CompletionItem для этого компонента.

Есть ли способ сделать это, используя CompletionItem или CompletionItemProvider?

html,typescript,autocomplete,visual-studio-code,code-snippets,

0

Ответов: 0

Автозаполнение путем проверки определенного текста в фрагменте HTML [код VS]

(Это очень специфический вопрос, включая знание машинописных / сниппета / кода кода)

Я разрабатываю расширение для VS Code, так как HTML Intellisense не обнаруживает мои созданные компоненты (не знаю почему, но это один действительно большой проект), в котором я создаю пользовательские и динамические фрагменты для моих компонентов приложения, но помимо фактический фрагмент всего тела. Я не могу в определенном компоненте обнаружить его входные данные (например, когда в div Intellisense отображается класс, заголовок, что угодно ...). Я хочу сделать это для своих компонентов.

Вот небольшой пример использования моего кода:

    class ComponentSnippet {

        public prefix: string = "<my-component>";
        public details: string = "Component description";
        public inputs: string[] = ["[input1]=""", "[input2]="""];
        public outputs: string[] = ["(output1)="""];
    }    

function createComponentSnippet(): vscode.CompletionItem {

        let component: ComponentSnippet = new ComponentSnippet;
        component.getPrefix();
        component.getDetails();
        component.getInputs();
        component.getOutputs();

        let item = new vscode.CompletionItem('my-component-snippet', vscode.CompletionItemKind.Snippet);
        item.insertText = new vscode.SnippetString("<!--Description: " + component.details + "-->" +
                "
<" + component.prefix +
                "
	${1|" + allInputs + " |}" +
                "
	${2|" + allOutputs + " |}>" +
                "
	$3" +
                "
</" + component.prefix + ">$0");
        item.documentation = new vscode.MarkdownString("Component Snippet");
}

Результат:

<!--Description: Component description-->
<my-component
    [input1]="" [input2]=""
    (output1)="">

</my-component>

Теперь, и вот реальный вопрос , когда я нахожусь в своем компоненте и нажимаю Ctrl + Space для Intellisense, он говорит «Нет предложений», и нужно показать массивы входов и выходов, например, для класса и заголовка в div, как компонент CompletionItem для этого компонента.

Есть ли способ сделать это, используя CompletionItem или CompletionItemProvider?

00HTML, машинопись, автозаполнение, зрительно-студия-код, код-фрагменты,
Похожие вопросы