Skip to content

Commit d6fbc63

Browse files
author
Damian Sznajder
committed
fix: load snippets dynamically inside search
1 parent fbf6ab7 commit d6fbc63

File tree

6 files changed

+18
-7
lines changed

6 files changed

+18
-7
lines changed

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,3 @@ node_modules
55
*.log
66
.DS_Store
77
lib/
8-
src/snippets/generated.json

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@
133133
"@babel/preset-typescript": "7.16.7",
134134
"@types/node": "17.0.16",
135135
"@types/prettier": "2.4.3",
136-
"@types/vscode": "1.64.0",
136+
"@types/vscode": "^1.60.0",
137137
"@typescript-eslint/eslint-plugin": "5.11.0",
138138
"@typescript-eslint/parser": "5.11.0",
139139
"eslint": "8.8.0",

src/helpers/snippetSearch.ts

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
1+
import { readFileSync } from 'fs';
12
import { SnippetString, window } from 'vscode';
23

3-
import snippets from '../snippets/generated.json';
4-
54
import { parseSnippet } from './formatters';
65
import { Snippet } from './generateSnippets';
76

87
const snippetSearch = async () => {
98
const { showQuickPick, activeTextEditor } = window;
109

11-
const snippetsArray = Object.entries(snippets) as [string, Snippet][];
10+
const snippets = readFileSync(
11+
__dirname + '/../snippets/generated.json',
12+
'utf8',
13+
);
14+
15+
const snippetsArray = Object.entries(JSON.parse(snippets)) as [
16+
string,
17+
Snippet,
18+
][];
1219

1320
const items = snippetsArray.map(
1421
([shortDescription, { body, description, prefix: label }]) => ({

src/index.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88

99
import generateSnippets from './helpers/generateSnippets';
1010
import snippetSearch from './helpers/snippetSearch';
11+
import generatedSnippets from './snippets/generated.json';
1112

1213
const showRestartMessage = async ({
1314
affectsConfiguration,
@@ -30,8 +31,11 @@ const showRestartMessage = async ({
3031
}
3132
};
3233

33-
export function activate(context: ExtensionContext) {
34+
export async function activate(context: ExtensionContext) {
3435
workspace.onDidChangeConfiguration(showRestartMessage);
36+
if (JSON.stringify(generatedSnippets).length < 10) {
37+
await generateSnippets();
38+
}
3539
const snippetSearchCommand = commands.registerCommand(
3640
'reactSnippets.search',
3741
snippetSearch,

src/snippets/generated.json

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

yarn.lock

+1-1
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@
287287
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.3.tgz#a3c65525b91fca7da00ab1a3ac2b5a2a4afbffbf"
288288
integrity sha512-QzSuZMBuG5u8HqYz01qtMdg/Jfctlnvj1z/lYnIDXs/golxw0fxtRAHd9KrzjR7Yxz1qVeI00o0kiO3PmVdJ9w==
289289

290-
"@types/vscode@1.64.0":
290+
"@types/vscode@^1.60.0":
291291
version "1.64.0"
292292
resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.64.0.tgz#bfd82c8d92dc7824c1be084be1ab46ce20d7fb55"
293293
integrity sha512-bSlAWz5WtcSL3cO9tAT/KpEH9rv5OBnm93OIIFwdCshaAiqr2bp1AUyEwW9MWeCvZBHEXc3V0fTYVdVyzDNwHA==

0 commit comments

Comments
 (0)