Skip to content

Commit

Permalink
refactor: optimization of activation processing
Browse files Browse the repository at this point in the history
  • Loading branch information
alex-gilin committed Aug 4, 2024
1 parent d09ce00 commit 891fed8
Showing 1 changed file with 49 additions and 33 deletions.
82 changes: 49 additions & 33 deletions packages/vscode-ui5-language-assistant/src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,24 +54,15 @@ let client: LanguageClient;
let statusBarItem: StatusBarItem;
let currentModel: UI5Model | undefined;

export async function activate(context: ExtensionContext): Promise<void> {
// create the LanguageClient (+Server)
client = createLanguageClient(context);

// register semantic token provider
context.subscriptions.push(
languages.registerDocumentSemanticTokensProvider(
{ language: "xml" },
bindingSemanticTokensProvider,
bindingLegend
)
);

async function init(context: ExtensionContext): Promise<void> {
// create the StatusBarItem which displays the used UI5 version
statusBarItem = createStatusBarItem(context);

// show/hide and update the status bar
// create the LanguageClient (+Server)
client = createLanguageClient(context);

client.start().then(() => {
// show/hide and update the status bar
client.onNotification(
"UI5LanguageAssistant/ui5Model",
async (model: UI5Model): Promise<void> => await updateCurrentModel(model)
Expand All @@ -81,31 +72,56 @@ export async function activate(context: ExtensionContext): Promise<void> {
(error: Error) => handleContextError(error)
);
});
}

export async function activate(context: ExtensionContext): Promise<void> {
// complete initialization task asynchronously
setTimeout(() => void init(context), 0);

// register semantic token provider
context.subscriptions.push(
languages.registerDocumentSemanticTokensProvider(
{ language: "xml" },
bindingSemanticTokensProvider,
bindingLegend
)
);

window.onDidChangeActiveTextEditor(async () => {
await updateCurrentModel(undefined);
});

languages.registerDocumentFormattingEditProvider("xml", {
provideDocumentFormattingEdits(document: TextDocument): TextEdit[] {
if (isXMLView(document.uri.fsPath)) {
return formatDocument(document);
}
return [];
},
});
languages.registerDocumentRangeFormattingEditProvider("xml", {
provideDocumentRangeFormattingEdits(document, range, options): TextEdit[] {
if (isXMLView(document.uri.fsPath)) {
return formatRange(document, range, options);
}
return [];
},
});
client.start();
context.subscriptions.push(
languages.registerDocumentFormattingEditProvider("xml", {
provideDocumentFormattingEdits(document: TextDocument): TextEdit[] {
if (isXMLView(document.uri.fsPath)) {
return formatDocument(document);
}
return [];
},
})
);

const provider = await getManifestSchemaProvider(context);
context.subscriptions.push(
workspace.registerTextDocumentContentProvider(MANIFEST_SCHEMA, provider)
languages.registerDocumentRangeFormattingEditProvider("xml", {
provideDocumentRangeFormattingEdits(
document,
range,
options
): TextEdit[] {
if (isXMLView(document.uri.fsPath)) {
return formatRange(document, range, options);
}
return [];
},
})
);

context.subscriptions.push(
workspace.registerTextDocumentContentProvider(
MANIFEST_SCHEMA,
await getManifestSchemaProvider(context)
)
);
}

Expand Down

0 comments on commit 891fed8

Please sign in to comment.