summaryrefslogtreecommitdiff
path: root/vscode/packages/server
diff options
context:
space:
mode:
authorGravatar Nate Moore <natemoo-re@users.noreply.github.com> 2021-03-25 10:38:17 -0500
committerGravatar GitHub <noreply@github.com> 2021-03-25 10:38:17 -0500
commit18e7cc5af903543ac6f46780bfea67c13c6517df (patch)
treef61100a6adf3d4641cab89a23ac071268ed911e2 /vscode/packages/server
parent30cccdf7154b6470e876464da9e412af10894dd5 (diff)
downloadastro-18e7cc5af903543ac6f46780bfea67c13c6517df.tar.gz
astro-18e7cc5af903543ac6f46780bfea67c13c6517df.tar.zst
astro-18e7cc5af903543ac6f46780bfea67c13c6517df.zip
Scaffold language server (#25)
* wip: scaffold astro extension * wip: scaffold astro extension * WIP: vscode extension * fix: autoCloseBefore * chore: update package.json * fix: use tsx instead of plain ts * chore: remove dist files * chore: remove comments * chore: cleanup package build process, switch build to esbuild * refactor: use shared esbuild config Co-authored-by: Nate Moore <nate@skypack.dev>
Diffstat (limited to '')
-rw-r--r--vscode/packages/server/.DS_Storebin0 -> 6148 bytes
-rw-r--r--vscode/packages/server/package-lock.json115
-rw-r--r--vscode/packages/server/package.json21
-rw-r--r--vscode/packages/server/src/index.ts32
-rw-r--r--vscode/packages/server/tsconfig.json9
5 files changed, 177 insertions, 0 deletions
diff --git a/vscode/packages/server/.DS_Store b/vscode/packages/server/.DS_Store
new file mode 100644
index 000000000..5008ddfcf
--- /dev/null
+++ b/vscode/packages/server/.DS_Store
Binary files differ
diff --git a/vscode/packages/server/package-lock.json b/vscode/packages/server/package-lock.json
new file mode 100644
index 000000000..71cdde13c
--- /dev/null
+++ b/vscode/packages/server/package-lock.json
@@ -0,0 +1,115 @@
+{
+ "name": "@astro-vscode/server",
+ "version": "0.1.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "astro": {
+ "version": "file:../..",
+ "dev": true,
+ "requires": {
+ "typescript": "^4.2.3",
+ "vscode-languageserver": "^7.0.0"
+ },
+ "dependencies": {
+ "typescript": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz",
+ "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==",
+ "dev": true
+ },
+ "vscode-jsonrpc": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz",
+ "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==",
+ "dev": true
+ },
+ "vscode-languageserver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz",
+ "integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==",
+ "dev": true,
+ "requires": {
+ "vscode-languageserver-protocol": "3.16.0"
+ }
+ },
+ "vscode-languageserver-protocol": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz",
+ "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==",
+ "dev": true,
+ "requires": {
+ "vscode-jsonrpc": "6.0.0",
+ "vscode-languageserver-types": "3.16.0"
+ }
+ },
+ "vscode-languageserver-types": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz",
+ "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==",
+ "dev": true
+ }
+ }
+ },
+ "vscode-html-languageservice": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-3.2.0.tgz",
+ "integrity": "sha512-aLWIoWkvb5HYTVE0kI9/u3P0ZAJGrYOSAAE6L0wqB9radKRtbJNrF9+BjSUFyCgBdNBE/GFExo35LoknQDJrfw==",
+ "requires": {
+ "vscode-languageserver-textdocument": "^1.0.1",
+ "vscode-languageserver-types": "3.16.0-next.2",
+ "vscode-nls": "^5.0.0",
+ "vscode-uri": "^2.1.2"
+ }
+ },
+ "vscode-jsonrpc": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz",
+ "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg=="
+ },
+ "vscode-languageserver": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-6.1.1.tgz",
+ "integrity": "sha512-DueEpkUAkD5XTR4MLYNr6bQIp/UFR0/IPApgXU3YfCBCB08u2sm9hRCs6DxYZELkk++STPjpcjksR2H8qI3cDQ==",
+ "requires": {
+ "vscode-languageserver-protocol": "^3.15.3"
+ }
+ },
+ "vscode-languageserver-protocol": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz",
+ "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==",
+ "requires": {
+ "vscode-jsonrpc": "6.0.0",
+ "vscode-languageserver-types": "3.16.0"
+ },
+ "dependencies": {
+ "vscode-languageserver-types": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz",
+ "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA=="
+ }
+ }
+ },
+ "vscode-languageserver-textdocument": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz",
+ "integrity": "sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA=="
+ },
+ "vscode-languageserver-types": {
+ "version": "3.16.0-next.2",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz",
+ "integrity": "sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q=="
+ },
+ "vscode-nls": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.0.tgz",
+ "integrity": "sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA=="
+ },
+ "vscode-uri": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz",
+ "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A=="
+ }
+ }
+}
diff --git a/vscode/packages/server/package.json b/vscode/packages/server/package.json
new file mode 100644
index 000000000..d5837cc08
--- /dev/null
+++ b/vscode/packages/server/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "@astro-vscode/server",
+ "version": "0.1.0",
+ "author": "Skypack",
+ "license": "MIT",
+ "main": "dist/index.js",
+ "files": [
+ "dist"
+ ],
+ "scripts": {
+ "build": "tsc"
+ },
+ "devDependencies": {
+ "astro": "file:../../"
+ },
+ "dependencies": {
+ "vscode-html-languageservice": "^3.0.3",
+ "vscode-languageserver": "^6.1.1",
+ "vscode-languageserver-textdocument": "^1.0.1"
+ }
+}
diff --git a/vscode/packages/server/src/index.ts b/vscode/packages/server/src/index.ts
new file mode 100644
index 000000000..dda369929
--- /dev/null
+++ b/vscode/packages/server/src/index.ts
@@ -0,0 +1,32 @@
+import { getLanguageService } from 'vscode-html-languageservice';
+import { createConnection, ProposedFeatures, TextDocuments, TextDocumentSyncKind } from 'vscode-languageserver';
+import { TextDocument } from 'vscode-languageserver-textdocument';
+
+let connection = createConnection(ProposedFeatures.all);
+let documents: TextDocuments<TextDocument> = new TextDocuments(TextDocument);
+
+const htmlLanguageService = getLanguageService();
+
+connection.onInitialize(() => {
+ return {
+ capabilities: {
+ textDocumentSync: TextDocumentSyncKind.Full,
+ completionProvider: {
+ resolveProvider: false,
+ },
+ },
+ };
+});
+
+connection.onCompletion(async (textDocumentPosition, token) => {
+ console.log(token);
+ const document = documents.get(textDocumentPosition.textDocument.uri);
+ if (!document) {
+ return null;
+ }
+
+ return htmlLanguageService.doComplete(document, textDocumentPosition.position, htmlLanguageService.parseHTMLDocument(document));
+});
+
+documents.listen(connection);
+connection.listen();
diff --git a/vscode/packages/server/tsconfig.json b/vscode/packages/server/tsconfig.json
new file mode 100644
index 000000000..6af42d0b2
--- /dev/null
+++ b/vscode/packages/server/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "compilerOptions": {
+ "outDir": "dist",
+ "rootDir": "src",
+ },
+ "include": ["src"],
+ "exclude": ["node_modules"],
+}