astro-vscode 2.15.1 → 2.15.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +12 -0
- package/.vscodeignore +10 -0
- package/CHANGELOG.md +1405 -0
- package/package.json +1 -7
- package/scripts/build-grammar.mjs +45 -0
- package/scripts/build.mjs +79 -0
- package/scripts/shared.mjs +29 -0
- package/src/client.ts +149 -0
- package/test/grammar/README.md +5 -0
- package/test/grammar/dummy/css.tmLanguage-dummy.json +4 -0
- package/test/grammar/dummy/html.tmLanguage-dummy.json +4 -0
- package/test/grammar/dummy/js.tmLanguage-dummy.json +4 -0
- package/test/grammar/dummy/json.tmLanguage-dummy.json +4 -0
- package/test/grammar/dummy/less.tsLanguage-dummy.json +4 -0
- package/test/grammar/dummy/postcss.tmLanguage-dummy.json +4 -0
- package/test/grammar/dummy/sass.tmLanguage-dummy.json +4 -0
- package/test/grammar/dummy/scss.tsLanguage-dummy.json +4 -0
- package/test/grammar/dummy/stylus.tmLanguage-dummy.json +4 -0
- package/test/grammar/dummy/ts.tmLanguage-dummy.json +4 -0
- package/test/grammar/dummy/tsx.tmLanguage-dummy.json +4 -0
- package/test/grammar/dummy/unknown.tmLanguage-dummy.json +4 -0
- package/test/grammar/fixtures/attributes.astro +14 -0
- package/test/grammar/fixtures/attributes.astro.snap +102 -0
- package/test/grammar/fixtures/components/component.astro +3 -0
- package/test/grammar/fixtures/components/component.astro.snap +17 -0
- package/test/grammar/fixtures/constant-entities.astro +7 -0
- package/test/grammar/fixtures/constant-entities.astro.snap +80 -0
- package/test/grammar/fixtures/raw/israw.astro +15 -0
- package/test/grammar/fixtures/raw/israw.astro.snap +68 -0
- package/test/grammar/fixtures/script/events.astro +3 -0
- package/test/grammar/fixtures/script/events.astro.snap +30 -0
- package/test/grammar/fixtures/script/israw.astro +3 -0
- package/test/grammar/fixtures/script/israw.astro.snap +13 -0
- package/test/grammar/fixtures/script/json.astro +14 -0
- package/test/grammar/fixtures/script/json.astro.snap +39 -0
- package/test/grammar/fixtures/script/jstypes.astro +15 -0
- package/test/grammar/fixtures/script/jstypes.astro.snap +68 -0
- package/test/grammar/fixtures/script/module.astro +3 -0
- package/test/grammar/fixtures/script/module.astro.snap +17 -0
- package/test/grammar/fixtures/script/script.astro +3 -0
- package/test/grammar/fixtures/script/script.astro.snap +11 -0
- package/test/grammar/fixtures/script/unknowntype.astro +3 -0
- package/test/grammar/fixtures/script/unknowntype.astro.snap +17 -0
- package/test/grammar/fixtures/style/israw.astro +5 -0
- package/test/grammar/fixtures/style/israw.astro.snap +17 -0
- package/test/grammar/fixtures/style/less.astro +9 -0
- package/test/grammar/fixtures/style/less.astro.snap +28 -0
- package/test/grammar/fixtures/style/sass.astro +8 -0
- package/test/grammar/fixtures/style/sass.astro.snap +26 -0
- package/test/grammar/fixtures/style/scss.astro +9 -0
- package/test/grammar/fixtures/style/scss.astro.snap +28 -0
- package/test/grammar/fixtures/style/style.astro +3 -0
- package/test/grammar/fixtures/style/style.astro.snap +11 -0
- package/test/grammar/fixtures/style/stylus.astro +9 -0
- package/test/grammar/fixtures/style/stylus.astro.snap +38 -0
- package/test/grammar/fixtures/text.astro +15 -0
- package/test/grammar/fixtures/text.astro.snap +58 -0
- package/test/grammar/test.mjs +59 -0
- package/test/runTest.js +27 -0
- package/test/suite/extension.test.js +15 -0
- package/test/suite/index.js +40 -0
- package/test/tsconfig.json +14 -0
- package/tsconfig.json +9 -0
package/package.json
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"color": "#17191E",
|
|
25
25
|
"theme": "dark"
|
|
26
26
|
},
|
|
27
|
-
"version": "2.15.
|
|
27
|
+
"version": "2.15.2",
|
|
28
28
|
"author": "withastro",
|
|
29
29
|
"license": "MIT",
|
|
30
30
|
"publisher": "astro-build",
|
|
@@ -36,12 +36,6 @@
|
|
|
36
36
|
"workspaceContains:astro.config.*"
|
|
37
37
|
],
|
|
38
38
|
"main": "./dist/node/client.js",
|
|
39
|
-
"files": [
|
|
40
|
-
"dist/",
|
|
41
|
-
"languages/",
|
|
42
|
-
"syntaxes/",
|
|
43
|
-
"assets/"
|
|
44
|
-
],
|
|
45
39
|
"repository": {
|
|
46
40
|
"type": "git",
|
|
47
41
|
"url": "https://github.com/withastro/language-tools.git",
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import yaml from 'js-yaml';
|
|
5
|
+
import { dim, green } from 'kleur/colors';
|
|
6
|
+
|
|
7
|
+
const dt = new Intl.DateTimeFormat('en-us', {
|
|
8
|
+
hour: '2-digit',
|
|
9
|
+
minute: '2-digit',
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
// Rebuild grammar when any yaml in the syntaxes directory changes
|
|
13
|
+
const syntaxesDir = new URL('../syntaxes/', import.meta.url);
|
|
14
|
+
const isWatch = process.argv.includes('--watch');
|
|
15
|
+
|
|
16
|
+
if (isWatch) {
|
|
17
|
+
console.info('Watching for changes in the syntaxes directory...');
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Absolute paths to the grammars
|
|
21
|
+
const grammarFiles = fs
|
|
22
|
+
.readdirSync(syntaxesDir)
|
|
23
|
+
.filter((file) => file.endsWith('.src.yaml'))
|
|
24
|
+
.map((path) => new URL(path, syntaxesDir));
|
|
25
|
+
for (const grammarFile of grammarFiles) {
|
|
26
|
+
if (isWatch) {
|
|
27
|
+
fs.watch(grammarFile, () => {
|
|
28
|
+
buildGrammar(grammarFile);
|
|
29
|
+
});
|
|
30
|
+
} else {
|
|
31
|
+
buildGrammar(grammarFile);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @param {URL} grammarFile
|
|
37
|
+
*/
|
|
38
|
+
function buildGrammar(grammarFile) {
|
|
39
|
+
const grammar = yaml.load(fs.readFileSync(grammarFile, 'utf8'));
|
|
40
|
+
const finalPath = fileURLToPath(grammarFile).replace('.src.yaml', '.json');
|
|
41
|
+
fs.writeFileSync(finalPath, JSON.stringify(grammar, null, 2));
|
|
42
|
+
|
|
43
|
+
const date = dt.format(new Date());
|
|
44
|
+
console.info(dim(`[${date}] `) + green(`✔ updated ${finalPath}`));
|
|
45
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import { createRequire } from 'node:module';
|
|
4
|
+
import esbuild from 'esbuild';
|
|
5
|
+
import { copy } from 'esbuild-plugin-copy';
|
|
6
|
+
import { rebuildPlugin } from './shared.mjs';
|
|
7
|
+
|
|
8
|
+
const require = createRequire(import.meta.url);
|
|
9
|
+
|
|
10
|
+
export default async function build() {
|
|
11
|
+
const isDev = process.argv.includes('--watch');
|
|
12
|
+
const metaFile = process.argv.includes('--metafile');
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @satisfies {import('esbuild').BuildOptions}
|
|
16
|
+
*/
|
|
17
|
+
const config = {
|
|
18
|
+
entryPoints: {
|
|
19
|
+
'dist/node/client': './src/client.ts',
|
|
20
|
+
'dist/node/server': './node_modules/@astrojs/language-server/bin/nodeServer.js',
|
|
21
|
+
// We need to generate this inside node_modules so VS Code can resolve it
|
|
22
|
+
'node_modules/astro-ts-plugin-bundle/index':
|
|
23
|
+
'./node_modules/@astrojs/ts-plugin/dist/index.js',
|
|
24
|
+
},
|
|
25
|
+
bundle: true,
|
|
26
|
+
metafile: metaFile,
|
|
27
|
+
sourcemap: isDev,
|
|
28
|
+
outdir: '.',
|
|
29
|
+
external: ['vscode', '@astrojs/compiler', 'prettier', 'prettier-plugin-astro'],
|
|
30
|
+
format: 'cjs',
|
|
31
|
+
platform: 'node',
|
|
32
|
+
tsconfig: './tsconfig.json',
|
|
33
|
+
define: { 'process.env.NODE_ENV': '"production"' },
|
|
34
|
+
minify: process.argv.includes('--minify'),
|
|
35
|
+
plugins: [
|
|
36
|
+
copy({
|
|
37
|
+
resolveFrom: 'cwd',
|
|
38
|
+
assets: {
|
|
39
|
+
from: ['../language-server/types/**/*.d.ts'],
|
|
40
|
+
to: ['./dist/types'],
|
|
41
|
+
watch: isDev,
|
|
42
|
+
},
|
|
43
|
+
}),
|
|
44
|
+
{
|
|
45
|
+
name: 'umd2esm',
|
|
46
|
+
setup(pluginBuild) {
|
|
47
|
+
pluginBuild.onResolve(
|
|
48
|
+
{ filter: /^(vscode-.*-languageservice|jsonc-parser)/ },
|
|
49
|
+
(buildArgs) => {
|
|
50
|
+
const pathUmdMay = require.resolve(buildArgs.path, { paths: [buildArgs.resolveDir] });
|
|
51
|
+
// Call twice the replace is to solve the problem of the path in Windows
|
|
52
|
+
const pathEsm = pathUmdMay.replace('/umd/', '/esm/').replace('\\umd\\', '\\esm\\');
|
|
53
|
+
return { path: pathEsm };
|
|
54
|
+
},
|
|
55
|
+
);
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
if (!isDev) {
|
|
62
|
+
const result = await esbuild.build(config);
|
|
63
|
+
if (metaFile) fs.writeFileSync('meta.json', JSON.stringify(result.metafile));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const builder = await esbuild.context({
|
|
68
|
+
...config,
|
|
69
|
+
plugins: [rebuildPlugin, ...(config.plugins ?? [])],
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
await builder.watch();
|
|
73
|
+
|
|
74
|
+
process.on('beforeExit', () => {
|
|
75
|
+
builder.dispose && builder.dispose();
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
build();
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { dim, green, red, yellow } from 'kleur/colors';
|
|
3
|
+
|
|
4
|
+
const dt = new Intl.DateTimeFormat('en-us', {
|
|
5
|
+
hour: '2-digit',
|
|
6
|
+
minute: '2-digit',
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @type {import('esbuild').Plugin}
|
|
11
|
+
*/
|
|
12
|
+
export const rebuildPlugin = {
|
|
13
|
+
name: 'astro:rebuild',
|
|
14
|
+
setup(build) {
|
|
15
|
+
build.onEnd(async (result) => {
|
|
16
|
+
const date = dt.format(new Date());
|
|
17
|
+
if (result && result.errors.length) {
|
|
18
|
+
console.error(dim(`[${date}] `) + red(result.errors.map((error) => error.text).join('\n')));
|
|
19
|
+
} else {
|
|
20
|
+
if (result.warnings.length) {
|
|
21
|
+
console.info(
|
|
22
|
+
dim(`[${date}] `) + yellow('⚠ updated with warnings:\n' + result.warnings.join('\n')),
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
console.info(dim(`[${date}] `) + green('✔ updated'));
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
};
|
package/src/client.ts
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
2
|
+
import * as protocol from '@volar/language-server/protocol';
|
|
3
|
+
import type { LabsInfo } from '@volar/vscode';
|
|
4
|
+
import {
|
|
5
|
+
activateAutoInsertion,
|
|
6
|
+
activateFindFileReferences,
|
|
7
|
+
activateReloadProjects,
|
|
8
|
+
activateTsConfigStatusItem,
|
|
9
|
+
activateTsVersionStatusItem,
|
|
10
|
+
createLabsInfo,
|
|
11
|
+
getTsdk,
|
|
12
|
+
} from '@volar/vscode';
|
|
13
|
+
import * as vscode from 'vscode';
|
|
14
|
+
import * as lsp from 'vscode-languageclient/node';
|
|
15
|
+
|
|
16
|
+
let client: lsp.BaseLanguageClient;
|
|
17
|
+
|
|
18
|
+
type InitOptions = {
|
|
19
|
+
typescript: {
|
|
20
|
+
tsdk: string;
|
|
21
|
+
};
|
|
22
|
+
} & Record<string, unknown>;
|
|
23
|
+
|
|
24
|
+
export async function activate(context: vscode.ExtensionContext): Promise<LabsInfo> {
|
|
25
|
+
const runtimeConfig = vscode.workspace.getConfiguration('astro.language-server');
|
|
26
|
+
|
|
27
|
+
const { workspaceFolders } = vscode.workspace;
|
|
28
|
+
const rootPath = workspaceFolders?.[0].uri.fsPath;
|
|
29
|
+
|
|
30
|
+
let lsPath = await getConfiguredServerPath(context.workspaceState);
|
|
31
|
+
if (typeof lsPath === 'string' && lsPath.trim() !== '' && typeof rootPath === 'string') {
|
|
32
|
+
lsPath = path.isAbsolute(lsPath) ? lsPath : path.join(rootPath, lsPath);
|
|
33
|
+
console.info(`Using language server at ${lsPath}`);
|
|
34
|
+
} else {
|
|
35
|
+
lsPath = undefined;
|
|
36
|
+
}
|
|
37
|
+
const serverModule = lsPath
|
|
38
|
+
? require.resolve(lsPath)
|
|
39
|
+
: vscode.Uri.joinPath(context.extensionUri, 'dist/node/server.js').fsPath;
|
|
40
|
+
|
|
41
|
+
const runOptions = { execArgv: [] };
|
|
42
|
+
const debugOptions = { execArgv: ['--nolazy', '--inspect=' + 6009] };
|
|
43
|
+
|
|
44
|
+
const serverOptions: lsp.ServerOptions = {
|
|
45
|
+
run: {
|
|
46
|
+
module: serverModule,
|
|
47
|
+
transport: lsp.TransportKind.ipc,
|
|
48
|
+
options: runOptions,
|
|
49
|
+
},
|
|
50
|
+
debug: {
|
|
51
|
+
module: serverModule,
|
|
52
|
+
transport: lsp.TransportKind.ipc,
|
|
53
|
+
options: debugOptions,
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const serverRuntime = runtimeConfig.get<string>('runtime');
|
|
58
|
+
if (serverRuntime) {
|
|
59
|
+
serverOptions.run.runtime = serverRuntime;
|
|
60
|
+
serverOptions.debug.runtime = serverRuntime;
|
|
61
|
+
console.info(`Using ${serverRuntime} as runtime`);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const hasContentIntellisense = vscode.workspace
|
|
65
|
+
.getConfiguration('astro')
|
|
66
|
+
.get('content-intellisense');
|
|
67
|
+
const initializationOptions = {
|
|
68
|
+
typescript: {
|
|
69
|
+
tsdk: (await getTsdk(context))!.tsdk,
|
|
70
|
+
},
|
|
71
|
+
contentIntellisense: hasContentIntellisense,
|
|
72
|
+
} satisfies InitOptions;
|
|
73
|
+
|
|
74
|
+
const clientOptions = {
|
|
75
|
+
documentSelector: [
|
|
76
|
+
{ language: 'astro' },
|
|
77
|
+
...(hasContentIntellisense
|
|
78
|
+
? [{ language: 'markdown' }, { language: 'mdx' }, { language: 'markdoc' }]
|
|
79
|
+
: []),
|
|
80
|
+
],
|
|
81
|
+
initializationOptions,
|
|
82
|
+
} satisfies lsp.LanguageClientOptions;
|
|
83
|
+
client = new lsp.LanguageClient('astro', 'Astro Language Server', serverOptions, clientOptions);
|
|
84
|
+
await client.start();
|
|
85
|
+
|
|
86
|
+
// support for auto close tag
|
|
87
|
+
activateAutoInsertion('astro', client);
|
|
88
|
+
activateFindFileReferences('astro.findFileReferences', client);
|
|
89
|
+
activateReloadProjects('astro.reloadProjects', client);
|
|
90
|
+
activateTsConfigStatusItem('astro', 'astro.openTsConfig', client);
|
|
91
|
+
activateTsVersionStatusItem('astro', 'astro.selectTypescriptVersion', context, (text) => text);
|
|
92
|
+
|
|
93
|
+
const volarLabs = createLabsInfo(protocol);
|
|
94
|
+
volarLabs.addLanguageClient(client);
|
|
95
|
+
|
|
96
|
+
return volarLabs.extensionExports;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export function deactivate(): Thenable<any> | undefined {
|
|
100
|
+
return client?.stop();
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
async function getConfiguredServerPath(workspaceState: vscode.Memento) {
|
|
104
|
+
const scope = 'astro.language-server';
|
|
105
|
+
const detailedLSPath = vscode.workspace.getConfiguration(scope).inspect<string>('ls-path');
|
|
106
|
+
|
|
107
|
+
const lsPath =
|
|
108
|
+
detailedLSPath?.globalLanguageValue ||
|
|
109
|
+
detailedLSPath?.defaultLanguageValue ||
|
|
110
|
+
detailedLSPath?.globalValue ||
|
|
111
|
+
detailedLSPath?.defaultValue;
|
|
112
|
+
|
|
113
|
+
const workspaceLSPath =
|
|
114
|
+
detailedLSPath?.workspaceFolderLanguageValue ||
|
|
115
|
+
detailedLSPath?.workspaceLanguageValue ||
|
|
116
|
+
detailedLSPath?.workspaceFolderValue ||
|
|
117
|
+
detailedLSPath?.workspaceValue;
|
|
118
|
+
|
|
119
|
+
const useLocalLanguageServerKey = `${scope}.useLocalLS`;
|
|
120
|
+
let useWorkspaceServer = workspaceState.get<boolean>(useLocalLanguageServerKey);
|
|
121
|
+
|
|
122
|
+
if (useWorkspaceServer === undefined && workspaceLSPath !== undefined) {
|
|
123
|
+
const msg =
|
|
124
|
+
'This workspace contains an Astro Language Server version. Would you like to use the workplace version?';
|
|
125
|
+
const allowPrompt = 'Allow';
|
|
126
|
+
const dismissPrompt = 'Dismiss';
|
|
127
|
+
const neverPrompt = 'Never in This Workspace';
|
|
128
|
+
|
|
129
|
+
const result = await vscode.window.showInformationMessage(
|
|
130
|
+
msg,
|
|
131
|
+
allowPrompt,
|
|
132
|
+
dismissPrompt,
|
|
133
|
+
neverPrompt,
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
if (result === allowPrompt) {
|
|
137
|
+
await workspaceState.update(useLocalLanguageServerKey, true);
|
|
138
|
+
useWorkspaceServer = true;
|
|
139
|
+
} else if (result === neverPrompt) {
|
|
140
|
+
await workspaceState.update(useLocalLanguageServerKey, false);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
if (useWorkspaceServer === true) {
|
|
145
|
+
return workspaceLSPath || lsPath;
|
|
146
|
+
} else {
|
|
147
|
+
return lsPath;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Testing syntax files
|
|
2
|
+
|
|
3
|
+
This is a testing setup powered by [vscode-tmgrammar-test](https://github.com/PanAeon/vscode-tmgrammar-test) intended to test our `astro.tmLanguage.json` file to make sure it properly handle `.astro` files. To run it, simply run the `test:grammar` npm script from the repo
|
|
4
|
+
|
|
5
|
+
[Snapshots](https://github.com/PanAeon/vscode-tmgrammar-test#snapshot-tests) can be updated using the `update-grammar-snapshots` npm script, however, unless your changes affect the currently present snapshots, you should always make sure to run the tests (`pnpm test:grammar`) before updating the snapshots, to make sure your changes do not introduce regressions
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!-- Test special characters inside attributes names -->
|
|
2
|
+
|
|
3
|
+
<div @class></div>
|
|
4
|
+
<div class_name></div>
|
|
5
|
+
<div class.astro></div>
|
|
6
|
+
<div i18nReady></div>
|
|
7
|
+
|
|
8
|
+
<div onclick="console.log()"></div>
|
|
9
|
+
|
|
10
|
+
<div onload={"console.log('')"}></div>
|
|
11
|
+
|
|
12
|
+
<div onload=`console.log('')`></div>
|
|
13
|
+
|
|
14
|
+
<div class=`\${not-a-variable}`></div>
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
><!-- Test special characters inside attributes names -->
|
|
2
|
+
#^^^^ source.astro comment.block.astro punctuation.definition.comment.astro
|
|
3
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.astro comment.block.astro
|
|
4
|
+
# ^^^ source.astro comment.block.astro punctuation.definition.comment.astro
|
|
5
|
+
>
|
|
6
|
+
><div @class></div>
|
|
7
|
+
#^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.begin.astro
|
|
8
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro entity.name.tag.astro
|
|
9
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro
|
|
10
|
+
# ^^^^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.@class.astro entity.other.attribute-name.astro
|
|
11
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.end.astro
|
|
12
|
+
# ^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.begin.astro
|
|
13
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro entity.name.tag.astro
|
|
14
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.end.astro
|
|
15
|
+
><div class_name></div>
|
|
16
|
+
#^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.begin.astro
|
|
17
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro entity.name.tag.astro
|
|
18
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro
|
|
19
|
+
# ^^^^^^^^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.class_name.astro entity.other.attribute-name.astro
|
|
20
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.end.astro
|
|
21
|
+
# ^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.begin.astro
|
|
22
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro entity.name.tag.astro
|
|
23
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.end.astro
|
|
24
|
+
><div class.astro></div>
|
|
25
|
+
#^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.begin.astro
|
|
26
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro entity.name.tag.astro
|
|
27
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro
|
|
28
|
+
# ^^^^^^^^^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.class.astro.astro entity.other.attribute-name.astro
|
|
29
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.end.astro
|
|
30
|
+
# ^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.begin.astro
|
|
31
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro entity.name.tag.astro
|
|
32
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.end.astro
|
|
33
|
+
><div i18nReady></div>
|
|
34
|
+
#^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.begin.astro
|
|
35
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro entity.name.tag.astro
|
|
36
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro
|
|
37
|
+
# ^^^^^^^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.i18nReady.astro entity.other.attribute-name.astro
|
|
38
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.end.astro
|
|
39
|
+
# ^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.begin.astro
|
|
40
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro entity.name.tag.astro
|
|
41
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.end.astro
|
|
42
|
+
>
|
|
43
|
+
><div onclick="console.log()"></div>
|
|
44
|
+
#^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.begin.astro
|
|
45
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro entity.name.tag.astro
|
|
46
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro
|
|
47
|
+
# ^^^^^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.onclick.astro entity.other.attribute-name.astro
|
|
48
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.onclick.astro punctuation.separator.key-value.astro
|
|
49
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.onclick.astro meta.embedded.line.js string.quoted.astro punctuation.definition.string.begin.astro
|
|
50
|
+
# ^^^^^^^^^^^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.onclick.astro meta.embedded.line.js string.quoted.astro
|
|
51
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.onclick.astro meta.embedded.line.js string.quoted.astro punctuation.definition.string.end.astro
|
|
52
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.end.astro
|
|
53
|
+
# ^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.begin.astro
|
|
54
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro entity.name.tag.astro
|
|
55
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.end.astro
|
|
56
|
+
>
|
|
57
|
+
><div onload={"console.log('')"}></div>
|
|
58
|
+
#^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.begin.astro
|
|
59
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro entity.name.tag.astro
|
|
60
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro
|
|
61
|
+
# ^^^^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.onload.astro entity.other.attribute-name.astro
|
|
62
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.onload.astro punctuation.separator.key-value.astro
|
|
63
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.onload.astro punctuation.section.embedded.begin.astro
|
|
64
|
+
# ^^^^^^^^^^^^^^^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.onload.astro meta.embedded.expression.astro source.tsx
|
|
65
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.onload.astro punctuation.section.embedded.end.astro
|
|
66
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.end.astro
|
|
67
|
+
# ^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.begin.astro
|
|
68
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro entity.name.tag.astro
|
|
69
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.end.astro
|
|
70
|
+
>
|
|
71
|
+
><div onload=`console.log('')`></div>
|
|
72
|
+
#^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.begin.astro
|
|
73
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro entity.name.tag.astro
|
|
74
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro
|
|
75
|
+
# ^^^^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.onload.astro entity.other.attribute-name.astro
|
|
76
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.onload.astro punctuation.separator.key-value.astro
|
|
77
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.onload.astro
|
|
78
|
+
# ^^^^^^^^^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.console.log.astro entity.other.attribute-name.astro
|
|
79
|
+
# ^^^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro
|
|
80
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.end.astro
|
|
81
|
+
# ^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.begin.astro
|
|
82
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro entity.name.tag.astro
|
|
83
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.end.astro
|
|
84
|
+
>
|
|
85
|
+
><div class=`\${not-a-variable}`></div>
|
|
86
|
+
#^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.begin.astro
|
|
87
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro entity.name.tag.astro
|
|
88
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro
|
|
89
|
+
# ^^^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.class.astro entity.other.attribute-name.astro
|
|
90
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.class.astro punctuation.separator.key-value.astro
|
|
91
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.class.astro
|
|
92
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro
|
|
93
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.attribute.$.astro entity.other.attribute-name.astro
|
|
94
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro
|
|
95
|
+
# ^^^^^^^^^^^^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro meta.embedded.expression.astro source.tsx
|
|
96
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro
|
|
97
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro
|
|
98
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.end.astro
|
|
99
|
+
# ^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.begin.astro
|
|
100
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro entity.name.tag.astro
|
|
101
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.end.astro
|
|
102
|
+
>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
><Component>
|
|
2
|
+
#^ source.astro meta.scope.tag.Component.astro meta.tag.start.astro punctuation.definition.tag.begin.astro
|
|
3
|
+
# ^^^^^^^^^ source.astro meta.scope.tag.Component.astro meta.tag.start.astro support.class.component.astro
|
|
4
|
+
# ^ source.astro meta.scope.tag.Component.astro meta.tag.start.astro punctuation.definition.tag.end.astro
|
|
5
|
+
> <div></div>
|
|
6
|
+
#^ source.astro text.astro
|
|
7
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.begin.astro
|
|
8
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro entity.name.tag.astro
|
|
9
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.end.astro
|
|
10
|
+
# ^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.begin.astro
|
|
11
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro entity.name.tag.astro
|
|
12
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.end.astro
|
|
13
|
+
></Component>
|
|
14
|
+
#^^ source.astro meta.scope.tag.Component.astro meta.tag.end.astro punctuation.definition.tag.begin.astro
|
|
15
|
+
# ^^^^^^^^^ source.astro meta.scope.tag.Component.astro meta.tag.end.astro support.class.component.astro
|
|
16
|
+
# ^ source.astro meta.scope.tag.Component.astro meta.tag.end.astro punctuation.definition.tag.end.astro
|
|
17
|
+
>
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
>ℊ ℊ ℊ ℋ ℋ ℋ
|
|
2
|
+
#^ source.astro constant.character.entity.numeric.hexadecimal.astro punctuation.definition.entity.astro
|
|
3
|
+
# ^^^^^^^ source.astro constant.character.entity.numeric.hexadecimal.astro
|
|
4
|
+
# ^ source.astro
|
|
5
|
+
# ^ source.astro constant.character.entity.numeric.decimal.astro punctuation.definition.entity.astro
|
|
6
|
+
# ^^^^^^ source.astro constant.character.entity.numeric.decimal.astro
|
|
7
|
+
# ^ source.astro
|
|
8
|
+
# ^ source.astro constant.character.entity.named.gscr.astro punctuation.definition.entity.astro
|
|
9
|
+
# ^^^^ source.astro constant.character.entity.named.gscr.astro
|
|
10
|
+
# ^ source.astro constant.character.entity.named.gscr.astro punctuation.definition.entity.astro
|
|
11
|
+
# ^ source.astro
|
|
12
|
+
# ^ source.astro constant.character.entity.numeric.hexadecimal.astro punctuation.definition.entity.astro
|
|
13
|
+
# ^^^^^^^ source.astro constant.character.entity.numeric.hexadecimal.astro
|
|
14
|
+
# ^ source.astro
|
|
15
|
+
# ^ source.astro constant.character.entity.numeric.decimal.astro punctuation.definition.entity.astro
|
|
16
|
+
# ^^^^^^ source.astro constant.character.entity.numeric.decimal.astro
|
|
17
|
+
# ^ source.astro
|
|
18
|
+
# ^ source.astro constant.character.entity.named.hamilt.astro punctuation.definition.entity.astro
|
|
19
|
+
# ^^^^^^ source.astro constant.character.entity.named.hamilt.astro
|
|
20
|
+
# ^ source.astro constant.character.entity.named.hamilt.astro punctuation.definition.entity.astro
|
|
21
|
+
>
|
|
22
|
+
><div>
|
|
23
|
+
#^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.begin.astro
|
|
24
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro entity.name.tag.astro
|
|
25
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.end.astro
|
|
26
|
+
> ℊ ℊ ℊ ℋ ℋ ℋ<div>
|
|
27
|
+
#^^ source.astro text.astro
|
|
28
|
+
# ^ source.astro text.astro constant.character.entity.numeric.hexadecimal.astro punctuation.definition.entity.astro
|
|
29
|
+
# ^^^^^^^ source.astro text.astro constant.character.entity.numeric.hexadecimal.astro
|
|
30
|
+
# ^ source.astro text.astro
|
|
31
|
+
# ^ source.astro text.astro constant.character.entity.numeric.decimal.astro punctuation.definition.entity.astro
|
|
32
|
+
# ^^^^^^ source.astro text.astro constant.character.entity.numeric.decimal.astro
|
|
33
|
+
# ^ source.astro text.astro
|
|
34
|
+
# ^ source.astro text.astro constant.character.entity.named.gscr.astro punctuation.definition.entity.astro
|
|
35
|
+
# ^^^^ source.astro text.astro constant.character.entity.named.gscr.astro
|
|
36
|
+
# ^ source.astro text.astro constant.character.entity.named.gscr.astro punctuation.definition.entity.astro
|
|
37
|
+
# ^ source.astro text.astro
|
|
38
|
+
# ^ source.astro text.astro constant.character.entity.numeric.hexadecimal.astro punctuation.definition.entity.astro
|
|
39
|
+
# ^^^^^^^ source.astro text.astro constant.character.entity.numeric.hexadecimal.astro
|
|
40
|
+
# ^ source.astro text.astro
|
|
41
|
+
# ^ source.astro text.astro constant.character.entity.numeric.decimal.astro punctuation.definition.entity.astro
|
|
42
|
+
# ^^^^^^ source.astro text.astro constant.character.entity.numeric.decimal.astro
|
|
43
|
+
# ^ source.astro text.astro
|
|
44
|
+
# ^ source.astro text.astro constant.character.entity.named.hamilt.astro punctuation.definition.entity.astro
|
|
45
|
+
# ^^^^^^ source.astro text.astro constant.character.entity.named.hamilt.astro
|
|
46
|
+
# ^ source.astro text.astro constant.character.entity.named.hamilt.astro punctuation.definition.entity.astro
|
|
47
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.begin.astro
|
|
48
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.start.astro entity.name.tag.astro
|
|
49
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.start.astro punctuation.definition.tag.end.astro
|
|
50
|
+
> ℊ ℊ ℊ ℋ ℋ ℋ
|
|
51
|
+
#^^^^ source.astro text.astro
|
|
52
|
+
# ^ source.astro text.astro constant.character.entity.numeric.hexadecimal.astro punctuation.definition.entity.astro
|
|
53
|
+
# ^^^^^^^ source.astro text.astro constant.character.entity.numeric.hexadecimal.astro
|
|
54
|
+
# ^ source.astro text.astro
|
|
55
|
+
# ^ source.astro text.astro constant.character.entity.numeric.decimal.astro punctuation.definition.entity.astro
|
|
56
|
+
# ^^^^^^ source.astro text.astro constant.character.entity.numeric.decimal.astro
|
|
57
|
+
# ^ source.astro text.astro
|
|
58
|
+
# ^ source.astro text.astro constant.character.entity.named.gscr.astro punctuation.definition.entity.astro
|
|
59
|
+
# ^^^^ source.astro text.astro constant.character.entity.named.gscr.astro
|
|
60
|
+
# ^ source.astro text.astro constant.character.entity.named.gscr.astro punctuation.definition.entity.astro
|
|
61
|
+
# ^ source.astro text.astro
|
|
62
|
+
# ^ source.astro text.astro constant.character.entity.numeric.hexadecimal.astro punctuation.definition.entity.astro
|
|
63
|
+
# ^^^^^^^ source.astro text.astro constant.character.entity.numeric.hexadecimal.astro
|
|
64
|
+
# ^ source.astro text.astro
|
|
65
|
+
# ^ source.astro text.astro constant.character.entity.numeric.decimal.astro punctuation.definition.entity.astro
|
|
66
|
+
# ^^^^^^ source.astro text.astro constant.character.entity.numeric.decimal.astro
|
|
67
|
+
# ^ source.astro text.astro
|
|
68
|
+
# ^ source.astro text.astro constant.character.entity.named.hamilt.astro punctuation.definition.entity.astro
|
|
69
|
+
# ^^^^^^ source.astro text.astro constant.character.entity.named.hamilt.astro
|
|
70
|
+
# ^ source.astro text.astro constant.character.entity.named.hamilt.astro punctuation.definition.entity.astro
|
|
71
|
+
> </div>
|
|
72
|
+
#^^ source.astro text.astro
|
|
73
|
+
# ^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.begin.astro
|
|
74
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro entity.name.tag.astro
|
|
75
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.end.astro
|
|
76
|
+
></div>
|
|
77
|
+
#^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.begin.astro
|
|
78
|
+
# ^^^ source.astro meta.scope.tag.div.astro meta.tag.end.astro entity.name.tag.astro
|
|
79
|
+
# ^ source.astro meta.scope.tag.div.astro meta.tag.end.astro punctuation.definition.tag.end.astro
|
|
80
|
+
>
|