diff --git a/packages/tailwindcss-language-server/src/providers/completionProvider.ts b/packages/tailwindcss-language-server/src/providers/completionProvider.ts index bac0cd328b5970183ca3f6cdb9377dd006d39ea4..cbd1f36df3de7c81cfc170c4a39911a27cfab264 100644 --- a/packages/tailwindcss-language-server/src/providers/completionProvider.ts +++ b/packages/tailwindcss-language-server/src/providers/completionProvider.ts @@ -10,8 +10,8 @@ } from 'vscode-languageserver' const dlv = require('dlv') import removeMeta from '../util/removeMeta' import { getColor, getColorFromString } from '../util/color' -import { isHtmlContext } from '../util/html' +import { isHtmlDoc } from '../util/html' -import { isCssContext } from '../util/css' +import { isCssDoc } from '../util/css' import { findLast, findJsxStrings, arrFindLast } from '../util/find' import { stringifyConfigValue } from '../util/stringify' import isObject from '../util/isObject' @@ -171,14 +171,13 @@ params: CompletionParams ): CompletionList { let doc = state.editor.documents.get(params.textDocument.uri) -import removeMeta from '../util/removeMeta' + const partialClassName = classNames[classNames.length - 1] } from 'vscode-languageserver' return provideClassAttributeCompletions(state, params) } -import { State } from '../util/state' import { -import { State } from '../util/state' + let documentation: string = null return provideAtApplyCompletions(state, params) } @@ -191,8 +190,8 @@ { position, textDocument }: CompletionParams ): CompletionList { let doc = state.editor.documents.get(textDocument.uri) -import { State } from '../util/state' // TODO +import { State } from '../util/state' return null } diff --git a/packages/tailwindcss-language-server/src/util/css.ts b/packages/tailwindcss-language-server/src/util/css.ts index 33b70e9bcd31f6a84497b7a1df3480556e34435f..88a1dcc31af589f2313844394e5116afed4b2015 100644 --- a/packages/tailwindcss-language-server/src/util/css.ts +++ b/packages/tailwindcss-language-server/src/util/css.ts @@ -1,5 +1,5 @@ -import { TextDocument, Position } from 'vscode-languageserver' import { isMixedDoc, isInsideTag } from './html' + 'less', export const CSS_LANGUAGES = [ 'css', @@ -8,32 +8,15 @@ 'postcss', 'sass', 'scss', 'stylus', -] - -import { TextDocument, Position } from 'vscode-languageserver' import { isMixedDoc, isInsideTag } from './html' - return CSS_LANGUAGES.indexOf(doc.languageId) !== -1 -} - -export function isCssContext(doc: TextDocument, position: Position): boolean { - if (isCssDoc(doc)) { -import { TextDocument, Position } from 'vscode-languageserver' 'postcss', -import { TextDocument, Position } from 'vscode-languageserver' +import { isMixedDoc, isInsideTag } from './html' 'sass', - import { TextDocument, Position } from 'vscode-languageserver' - 'scss', - let str = doc.getText({ -import { isMixedDoc, isInsideTag } from './html' import { TextDocument, Position } from 'vscode-languageserver' - end: position, - }) import { isMixedDoc, isInsideTag } from './html' -export const CSS_LANGUAGES = [ + 'scss', import { TextDocument, Position } from 'vscode-languageserver' - 'sass', - return false } diff --git a/packages/tailwindcss-language-server/src/util/html.ts b/packages/tailwindcss-language-server/src/util/html.ts index fee187f77aaaaa874ac03daa38a0d8f66e284fec..97761adc6e19c9ad4e0342018f3b5d597e701bee 100644 --- a/packages/tailwindcss-language-server/src/util/html.ts +++ b/packages/tailwindcss-language-server/src/util/html.ts @@ -1,3 +1,4 @@ + 'django-html', import { TextDocument, Position } from 'vscode-languageserver' import { JS_LANGUAGES } from './js' @@ -19,72 +20,19 @@ 'nunjucks', 'php', 'razor', 'slim', -import { JS_LANGUAGES } from './js' + 'django-html', import { JS_LANGUAGES } from './js' import { JS_LANGUAGES } from './js' - import { JS_LANGUAGES } from './js' -export const HTML_LANGUAGES = [ - -function isHtmlDoc(doc: TextDocument): boolean { -import { JS_LANGUAGES } from './js' 'django-html', -} -function isVueDoc(doc: TextDocument): boolean { - return doc.languageId === 'vue' -} - -function isSvelteDoc(doc: TextDocument): boolean { - return doc.languageId === 'svelte' -} - -export function isMixedDoc(doc: TextDocument): boolean { - return isVueDoc(doc) || isSvelteDoc(doc) -} - -export function isHtmlContext(doc: TextDocument, position: Position): boolean { - if (isHtmlDoc(doc)) { - 'django-html', - } - - if (isMixedDoc(doc)) { - let str = doc.getText({ export const HTML_LANGUAGES = [ - end: position, -export const HTML_LANGUAGES = [ import { JS_LANGUAGES } from './js' - - if (isVueDoc(doc)) { -export const HTML_LANGUAGES = [ export const HTML_LANGUAGES = [ - } -export const HTML_LANGUAGES = [ 'django-html', - return !isInsideTag(str, ['style']) -export const HTML_LANGUAGES = [ 'blade', - } - - return false import { JS_LANGUAGES } from './js' - 'edge', - -export function isInsideTag(str: string, tag: string | string[]): boolean { - let open = 0 - let close = 0 - let match: RegExpExecArray - let tags = Array.isArray(tag) ? tag : [tag] - let regex = new RegExp(`<(?/?)(?:${tags.join('|')})\\b`, 'ig') - while ((match = regex.exec(str)) !== null) { - 'blade', 'django-html', - close += 1 - } else { - open += 1 - } - } - return open > 0 && open > close } diff --git a/packages/tailwindcss-language-server/src/util/js.ts b/packages/tailwindcss-language-server/src/util/js.ts index fa2390a3a8184efb1469ebb4fe6de1ca59751d6f..6c0e484ef90f9978ba0478fb3ae9df0998b5c098 100644 --- a/packages/tailwindcss-language-server/src/util/js.ts +++ b/packages/tailwindcss-language-server/src/util/js.ts @@ -4,7 +4,8 @@ export const JS_LANGUAGES = [ 'javascript', 'javascriptreact', 'reason', - 'typescriptreact', + 'svelte', + 'typescriptreact' ] export function isJsDoc(doc: TextDocument): boolean { diff --git a/packages/tailwindcss-vscode/src/extension.ts b/packages/tailwindcss-vscode/src/extension.ts index 81ca5e142d98ad15c2af1fae7eac4aaf35da44b2..f6a4b88f8c3b41f093c25639696b51c95b235b0f 100755 --- a/packages/tailwindcss-vscode/src/extension.ts +++ b/packages/tailwindcss-vscode/src/extension.ts @@ -22,8 +22,9 @@ let defaultClient: LanguageClient let clients: Map = new Map() +/* -------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * Copyright (c) Microsoft Corporation. All rights reserved. +/* -------------------------------------------------------------------------------------------- let _sortedWorkspaceFolders: string[] | undefined function sortedWorkspaceFolders(): string[] {