Skip to content

Commit

Permalink
contributes.css.customData for #66414
Browse files Browse the repository at this point in the history
octref committed Jan 11, 2019
1 parent 3703d71 commit 2b0cee0
Showing 2 changed files with 24 additions and 5 deletions.
7 changes: 5 additions & 2 deletions extensions/css-language-features/client/src/cssMain.ts
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@ const localize = nls.loadMessageBundle();

import { languages, window, commands, ExtensionContext, Range, Position, CompletionItem, CompletionItemKind, TextEdit, SnippetString, workspace } from 'vscode';
import { LanguageClient, LanguageClientOptions, ServerOptions, TransportKind, Disposable } from 'vscode-languageclient';
import { getCustomDataPathsInAllWorkspaces } from './customData';
import { getCustomDataPathsInAllWorkspaces, getCustomDataPathsFromAllExtensions } from './customData';

// this method is called when vs code is activated
export function activate(context: ExtensionContext) {
@@ -31,7 +31,10 @@ export function activate(context: ExtensionContext) {

let documentSelector = ['css', 'scss', 'less'];

let dataPaths = getCustomDataPathsInAllWorkspaces(workspace.workspaceFolders);
let dataPaths = [
...getCustomDataPathsInAllWorkspaces(workspace.workspaceFolders),
...getCustomDataPathsFromAllExtensions()
];

// Options to control the language client
let clientOptions: LanguageClientOptions = {
22 changes: 19 additions & 3 deletions extensions/css-language-features/client/src/customData.ts
Original file line number Diff line number Diff line change
@@ -4,11 +4,11 @@
*--------------------------------------------------------------------------------------------*/

import * as path from 'path';
import { workspace, WorkspaceFolder } from 'vscode';
import { workspace, WorkspaceFolder, extensions } from 'vscode';

interface ExperimentalConfig {
experimental?: {
customData?: string[]
customData?: string[];
};
}

@@ -28,7 +28,6 @@ export function getCustomDataPathsInAllWorkspaces(workspaceFolders: WorkspaceFol
wfCSSConfig.workspaceFolderValue.experimental &&
wfCSSConfig.workspaceFolderValue.experimental.customData
) {

wfCSSConfig.workspaceFolderValue.experimental.customData.forEach(p => [
dataPaths.push(path.resolve(wf.uri.fsPath, p))
]);
@@ -37,3 +36,20 @@ export function getCustomDataPathsInAllWorkspaces(workspaceFolders: WorkspaceFol

return dataPaths;
}

export function getCustomDataPathsFromAllExtensions(): string[] {
const dataPaths: string[] = [];

for (const extension of extensions.all) {
const contributes = extension.packageJSON && extension.packageJSON.contributes;

if (contributes && contributes.css && contributes.css.customData && Array.isArray(contributes.css.customData)) {
const relativePaths: string[] = contributes.css.customData;
relativePaths.forEach(rp => {
dataPaths.push(path.resolve(extension.extensionPath, rp));
});
}
}

return dataPaths;
}

0 comments on commit 2b0cee0

Please sign in to comment.