Skip to content

Commit 3a967ed

Browse files
committed
Merge remote-tracking branch 'origin/main' into vue-files-eof
2 parents 46a4fbb + c9a0a4f commit 3a967ed

File tree

4 files changed

+60
-1
lines changed

4 files changed

+60
-1
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ While using the CLI directly from your terminal is perfectly viable, Nuxtr's int
118118

119119
**Nuxt Snippets**: Enhance your development speed with Nuxt snippets. Simply type `nuxt` for components, `use` for Composables, or begin typing Nuxt utilities and select your desired snippet from the list.
120120

121+
Starting 0.2.10, you can inject a dynamic snippet based on your Nuxtr Vue files configuration with `vueBaseFile` or `vueBaseLayout`.
122+
121123
Nuxt Snippets are enabled by default. You can toggle them on or off using this setting:
122124

123125
```JSON

nuxtr-vscode

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit 46a4fbbeacc81682278306b9bc0584d5d5ddf188

src/snippets/index.ts

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
import { extensions } from 'vscode';
1+
import { extensions, MarkdownString, languages, CompletionItem, CompletionItemKind, Position, TextDocument, Range, DocumentHighlight, DocumentHighlightKind } from 'vscode';
22
import * as os from 'os';
33
import { existsSync, move, mkdirSync, readdirSync, removeSync } from 'fs-extra';
44
import { join, resolve } from 'pathe';
5+
<<<<<<< HEAD
56
import { nuxtrConfiguration } from '../utils';
7+
=======
8+
import { getConfiguration, languageSelector, generateVueFileBasicTemplate } from '../utils';
9+
>>>>>>> origin/main
610

711
export enum SnippetSource {
812
nuxt = 'Nuxt',
@@ -48,3 +52,51 @@ export const toggleSnippets = async () => {
4852
await manageSnippetState(SnippetSource.nuxt, snippetsConfigurations.nuxt);
4953
await manageSnippetState(SnippetSource.nitro, snippetsConfigurations.nitro);
5054
}
55+
56+
57+
export const vuePageTemplate = languages.registerCompletionItemProvider(
58+
{ language: 'vue' },
59+
{
60+
provideCompletionItems(document: TextDocument, position: Position) {
61+
const completionItem = new CompletionItem('vueBaseFile', CompletionItemKind.Snippet);
62+
completionItem.detail = 'Generate a Vue page/component template';
63+
64+
const template = generateVueFileBasicTemplate('page');
65+
66+
// Create a MarkdownString for documentation with code highlighting
67+
const documentation = new MarkdownString();
68+
documentation.appendMarkdown(`Generate a Vue page/component template according to your Nuxtr configuration.\n\n`);
69+
documentation.appendCodeblock(template, 'vue'); // Specify 'vue' as the language for code block highlighting
70+
71+
completionItem.documentation = documentation;
72+
completionItem.kind = CompletionItemKind.Snippet;
73+
completionItem.insertText = template;
74+
75+
return [completionItem];
76+
}
77+
}
78+
);
79+
80+
81+
export const vueBaseTemplate = languages.registerCompletionItemProvider(
82+
{ language: 'vue' },
83+
{
84+
provideCompletionItems(document: TextDocument, position: Position) {
85+
const completionItem = new CompletionItem('vueBaseLayout', CompletionItemKind.Snippet);
86+
completionItem.detail = 'Generate a Vue file template';
87+
88+
const template = generateVueFileBasicTemplate('layout');
89+
90+
// Create a MarkdownString for documentation with code highlighting
91+
const documentation = new MarkdownString();
92+
documentation.appendMarkdown(`Generate a Vue file template according to your Nuxtr configuration.\n\n`);
93+
documentation.appendCodeblock(template, 'vue'); // Specify 'vue' as the language for code block highlighting
94+
95+
completionItem.documentation = documentation;
96+
completionItem.kind = CompletionItemKind.Snippet;
97+
completionItem.insertText = template;
98+
99+
return [completionItem];
100+
}
101+
}
102+
);

ui/build/assets/index.js

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

0 commit comments

Comments
 (0)