Skip to content

Commit

Permalink
moved packages into sub-folders, so that its easier to use them from …
Browse files Browse the repository at this point in the history
…vue-project
  • Loading branch information
Eivind Fasting committed Jun 14, 2024
1 parent c7512d9 commit 599b625
Show file tree
Hide file tree
Showing 18 changed files with 1,648 additions and 412 deletions.
38 changes: 12 additions & 26 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,35 +25,21 @@
},
"devDependencies": {
"@types/node": "latest",
"@types/vscode": "^1.89.0",
"typescript": "latest",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^6.21.0",
"@volar/vscode": "~2.2.0",
"vscode-languageclient": "^9.0.1",
"vite": "^5.2.10",
"esbuild": "^0.20.2",
"eslint": "^8.57.0",
"langium": "^3.0.0",
"uuid": "^9.0.1",
"@types/uuid": "^9.0.8"
},
"dependencies": {
"@volar/typescript": "~2.2.0",
"@volar/language-core": "~2.2.0",
"@volar/monaco": "~2.2.0",
"@volar/language-server": "~2.2.0",
"@volar/language-service": "~2.2.0",
"volar-service-css": "volar-2.2",
"volar-service-emmet": "volar-2.2",
"volar-service-html": "volar-2.2",
"volar-service-typescript": "volar-2.2",
"monaco-editor": "^0.47.0",
"vscode-html-languageservice": "^5.2.0",
"@superoffice/webapi": "^10.3.4",
"volar-service-emmet": "volar-2.2",
"volar-service-html": "volar-2.2",
"volar-service-typescript": "volar-2.2",
"@superoffice/langium-crmscript": "link:packages\\langium-crmscript",
"@superoffice/language-server": "link:packages\\language-server",
"langium-cli": "~3.0.0",
"openid-client": "^5.6.5"
}
"langium": "^3.0.0",
"esbuild": "^0.20.2",
"eslint": "^8.57.0",
"vscode-uri": "^3.0.8",
"@superoffice/webapi": "^10.3.4"
},
"workspaces": [
"packages/*"
]
}
4 changes: 4 additions & 0 deletions packages/language-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,9 @@
"vscode:prepublish": "npm run build:prod",
"build": "node ./scripts/build.mjs",
"build:prod": "node ./scripts/build.mjs --production"
},
"devDependencies": {
"@volar/language-core": "~2.2.0",
"vscode-html-languageservice": "^5.2.0"
}
}
12 changes: 4 additions & 8 deletions packages/language-server/src/core/superoffice.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,6 @@ export function getSuperOfficeLanguageModule(): LanguagePlugin<SuperOfficeVirtua
}

},
updateVirtualCode(_uri, languageCode, newSnapshot) {
languageCode.update(newSnapshot);
return languageCode;
},
typescript: {
extraFileExtensions: [{ extension: 'crmscript-definition', isMixedContent: true, scriptKind: 0 satisfies ts.ScriptKind.Unknown }],
getServiceScript() {
Expand Down Expand Up @@ -151,7 +147,7 @@ class SuperOfficeVirtualCode implements VirtualCode {
id: this.scriptType,
languageId: this.scriptType === 'jsfso' ? 'typescript' : 'crmscript-definition',
snapshot: {
getText: (start, end) => generated.slice(start, end),
getText: (start: number | undefined, end: number | undefined) => generated.slice(start, end),
getLength: () => generated.length,
getChangeRange: () => undefined,
},
Expand Down Expand Up @@ -199,7 +195,7 @@ class SuperOfficeVirtualCode implements VirtualCode {
id: 'html',
languageId: 'html',
snapshot: {
getText: (start, end) => generated.slice(start, end),
getText: (start: number | undefined, end: number | undefined) => generated.slice(start, end),
getLength: () => generated.length,
getChangeRange: () => undefined,
},
Expand Down Expand Up @@ -268,7 +264,7 @@ class SuperOfficeVirtualCode implements VirtualCode {
id: 'style_' + styles++,
languageId: 'css',
snapshot: {
getText: (start, end) => styleText.substring(start, end),
getText: (start: number, end: number | undefined) => styleText.substring(start, end),
getLength: () => styleText.length,
getChangeRange: () => undefined,
},
Expand Down Expand Up @@ -296,7 +292,7 @@ class SuperOfficeVirtualCode implements VirtualCode {
id: 'script_' + scripts++,
languageId: isTs ? 'typescript' : 'javascript',
snapshot: {
getText: (start, end) => text.substring(start, end),
getText: (start: number, end: number | undefined) => text.substring(start, end),
getLength: () => text.length,
getChangeRange: () => undefined,
},
Expand Down
7 changes: 3 additions & 4 deletions packages/language-server/src/server.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
import { create as createEmmetService } from 'volar-service-emmet';
import { create as createHtmlService } from 'volar-service-html';
import { create as createCssService } from 'volar-service-css';
import { create as createTypeScriptServices } from 'volar-service-typescript';
import { create as createTypeScriptService } from 'volar-service-typescript';
import { createServer, createConnection, createTypeScriptProjectProvider, loadTsdkByPath } from '@volar/language-server/node.js';

import { create as createCrmscriptService, createOrUpdateLangiumDocument } from './plugins/crmscript-definition.js';
import { create as createCrmscriptService } from './plugins/crmscript-definition.js';
import { getSuperOfficeLanguageModule } from './core/superoffice.js';

import { createCrmscriptServices } from '@superoffice/langium-crmscript/src/language/crmscript-module.js';
import { NodeFileSystem } from 'langium/node';
import { URI } from 'langium';

const connection = createConnection();

Expand Down Expand Up @@ -41,7 +40,7 @@ connection.onInitialize(params => {
createHtmlService(),
createCssService(),
createEmmetService({}),
...createTypeScriptServices(tsdk.typescript, {}),
...createTypeScriptService(tsdk.typescript, {}),
createCrmscriptService({ sharedService: shared, definitionService: Definition }),
],
createTypeScriptProjectProvider(tsdk.typescript, tsdk.diagnosticMessages, () => [getSuperOfficeLanguageModule()]),
Expand Down
6 changes: 6 additions & 0 deletions packages/monaco/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,11 @@
"dev": "vite",
"build": "tsc && vite build --base=./",
"preview": "vite preview"
},
"devDependencies": {
"@volar/language-service": "~2.2.0",
"@volar/monaco": "~2.2.0",
"vite": "^5.2.10",
"monaco-editor": "^0.47.0"
}
}
17 changes: 12 additions & 5 deletions packages/monaco/src/custom.worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,28 @@ import {
// import { service as crmscriptLanguageService } from "@superoffice/language-service/crmscriptLanguageService.js";
// import { suoLanguagePlugin } from "@superoffice/language-service/suoLanguagePlugin.js";

import { create as createCrmscriptService } from '@superoffice/language-server/src/plugins/crmscript.js';
import { create as createCrmscriptService } from '@superoffice/language-server/src/plugins/crmscript-definition.js';
import { getSuperOfficeLanguageModule } from '@superoffice/language-server/src/core/superoffice.js';

import ts from 'typescript';
import { create as createTypeScriptService } from 'volar-service-typescript';
import { create as createEmmetService } from 'volar-service-emmet';
import { create as createHtmlService } from 'volar-service-html';
import { create as createCssService } from 'volar-service-css';
import { create as createTypeScriptService } from 'volar-service-typescript';
import { createCrmscriptServices } from '@superoffice/langium-crmscript/src/language/crmscript-module.js';

import { NodeFileSystem } from 'langium/node';

// Inject the shared services and language-specific services
const { shared, Definition } = createCrmscriptServices({ ...NodeFileSystem });

self.onmessage = () => {
worker.initialize((ctx: monaco.worker.IWorkerContext) => {
const env: ServiceEnvironment = {
workspaceFolder: 'file:///',
typescript: {
uriToFileName: uri => uri.substring('file://'.length),
fileNameToUri: fileName => 'file://' + fileName,
uriToFileName: (uri: string) => uri.substring('file://'.length),
fileNameToUri: (fileName: string) => 'file://' + fileName,
},
};

Expand All @@ -42,6 +48,7 @@ self.onmessage = () => {
workerContext: ctx,
env,
languagePlugins: [
//TODO: Figure this out
getSuperOfficeLanguageModule()
],
servicePlugins: [
Expand All @@ -50,7 +57,7 @@ self.onmessage = () => {
createCssService(),
createEmmetService({}),
...createTypeScriptService(ts),
createCrmscriptService(),
createCrmscriptService({ sharedService: shared, definitionService: Definition }),
],
});
});
Expand Down
6 changes: 3 additions & 3 deletions packages/monaco/src/monaco-setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ async function createAndSetWorker(language: Language){

const languageIds = [language.id];
const getSyncUris = () => editor.getModels().map(model => model.uri);
volar.activateMarkers(worker, languageIds, language.id, getSyncUris, editor);
volar.activateAutoInsertion(worker, languageIds, getSyncUris, editor);
await volar.registerProviders(worker, languageIds, getSyncUris, editorLanguages);
volar.activateMarkers(worker as any, languageIds, language.id, getSyncUris, editor);
volar.activateAutoInsertion(worker as any, languageIds, getSyncUris, editor);
await volar.registerProviders(worker as any, languageIds, getSyncUris, editorLanguages);
}
1 change: 1 addition & 0 deletions packages/monaco/tsconfig.tsbuildinfo

Large diffs are not rendered by default.

38 changes: 25 additions & 13 deletions packages/vscode/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,25 @@
{
"id": "crmscript-definition",
"aliases": [
"crmscript Definition",
"crmscript-definition"
"crmscript Definition",
"crmscript-definition"
],
"extensions": [
".crmscript-definition"
],
"extensions": [".crmscript-definition"],
"configuration": "./crmscript-language-configuration.json"
}, {
},
{
"id": "crmscript-implementation",
"aliases": [
"crmscript Implementation",
"crmscript-implementation"
"crmscript Implementation",
"crmscript-implementation"
],
"extensions": [
".crmscript"
],
"extensions": [".crmscript"],
"configuration": "./crmscript-language-configuration.json"
}
}
],
"grammars": [
{
Expand All @@ -53,12 +58,12 @@
"language": "crmscript-definition",
"scopeName": "source.crmscript-definition",
"path": "./syntaxes/crmscript-definition.tmLanguage.json"
},
{
},
{
"language": "crmscript-implementation",
"scopeName": "source.crmscript-implementation",
"path": "./syntaxes/crmscript-implementation.tmLanguage.json"
}
}
],
"commands": [
{
Expand Down Expand Up @@ -151,13 +156,20 @@
"label": "SuperOffice"
}
],
"configuration": [
]
"configuration": []
},
"scripts": {
"preinstall": "npx only-allow pnpm",
"vscode:prepublish": "npm run build:prod",
"build": "node ./scripts/build.js",
"build:prod": "node ./scripts/build.js --production"
},
"devDependencies": {
"@types/vscode": "^1.82.0",
"@volar/vscode": "~2.2.0",
"@types/uuid": "^9.0.8",
"uuid": "^9.0.1",
"openid-client": "^5.6.5",
"vscode-languageclient": "^9.0.1"
}
}
2 changes: 1 addition & 1 deletion packages/vscode/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export const CONFIG_COMMANDS = {
};

export const CONFIG_AUTHSERVICE = {
REDIRECT_URI: 'http://127.0.0.1:8000',
REDIRECT_URI: 'http://127.0.0.1:8000'
};

export const CONFIG_SYSTEMSERVICE = {
Expand Down
10 changes: 5 additions & 5 deletions packages/vscode/src/container.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
// container.ts

import * as vscode from 'vscode';
import { Issuer, generators } from 'openid-client';
import { Issuer as issuer } from 'openid-client';
import { createServer } from 'http';
import { AuthenticationService, IAuthenticationService } from './services/authenticationService';
import { parse } from 'url';
import { FileSystemHandler, IFileSystemHandler } from './workspace/fileSystemHandler';
import { FileSystemHandler, IFileSystemHandler } from './handlers/fileSystemHandler';
import { IScriptService, ScriptService } from './services/scriptService';
import { TreeViewDataProvider } from './providers/treeViewDataProvider';
import { VirtualFileSystemProvider } from './workspace/virtualWorkspaceFileManager';
import { VirtualFileSystemProvider } from './handlers/virtualWorkspaceFileManager';

export async function initializeServices(): Promise<{
authenticationService: IAuthenticationService,
Expand All @@ -20,8 +20,8 @@ export async function initializeServices(): Promise<{
const fileSystemHandler: IFileSystemHandler = new FileSystemHandler();

const authenticationService: IAuthenticationService = new AuthenticationService({
Issuer,
generators,
issuer,
//generators,
parse,
createServer,
vscode
Expand Down
7 changes: 4 additions & 3 deletions packages/vscode/src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { LabsInfo, createLabsInfo, getTsdk } from '@volar/vscode';
import * as vscode from 'vscode';
import * as lsp from 'vscode-languageclient/node';
import { TreeViewDataProvider } from './providers/treeViewDataProvider';
import { VirtualFileSystemProvider } from './workspace/virtualWorkspaceFileManager';
//import { VirtualFileSystemProvider } from './handlers/virtualWorkspaceFileManager';
import { CONFIG_COMMANDS } from './config';
import { SuperofficeAuthenticationProvider } from './providers/authenticationProvider';
import { registerCommands } from './commands';
Expand Down Expand Up @@ -37,14 +37,15 @@ export async function activate(context: vscode.ExtensionContext): Promise<LabsIn
options: debugOptions
},
};

const clientOptions: lsp.LanguageClientOptions = {
documentSelector: [
{ language: 'jsfso' },
{ language: 'crmscript-definition' }
],
initializationOptions: {
typescript: {
tsdk: (await getTsdk(context)).tsdk,
tsdk: (await getTsdk(context))!.tsdk,
}
},
};
Expand All @@ -56,7 +57,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<LabsIn
);
await client.start();

const { authenticationService, fileSystemHandler, scriptService, treeViewDataProvider, vfsProvider } = await initializeServices();
const { authenticationService, fileSystemHandler, /*scriptService, */treeViewDataProvider, vfsProvider } = await initializeServices();

// Register Virtual File System Provider
vscode.workspace.registerFileSystemProvider(CONFIG_COMMANDS.VFS_SCHEME, vfsProvider, { isCaseSensitive: true });
Expand Down
Loading

0 comments on commit 599b625

Please sign in to comment.