diff --git a/src/lsp/providers/codeActionProvider/index.ts b/src/lsp/providers/codeActionProvider/index.ts index 62bdb128c3e49cf2cd5895a14dff8cfa7064aef1..6ae4bf984ee3310f28f8a627347c6b54b8ad140c 100644 --- a/src/lsp/providers/codeActionProvider/index.ts +++ b/src/lsp/providers/codeActionProvider/index.ts @@ -6,6 +6,7 @@ Range, TextEdit, } from 'vscode-languageserver' import { State } from '../../util/state' +import { findLast } from '../../util/find' import { isWithinRange } from '../../util/isWithinRange' import { getClassNameParts } from '../../util/getClassNameAtPosition' const dlv = require('dlv') @@ -30,9 +31,6 @@ isInvalidVariantDiagnostic, } from '../diagnostics/types' import { flatten, dedupeBy } from '../../../util/array' import { joinWithAnd } from '../../util/joinWithAnd' -import { getLanguageBoundaries } from '../../util/getLanguageBoundaries' -import { isCssDoc } from '../../util/css' -import { absoluteRange } from '../../util/absoluteRange' async function getDiagnosticsFromCodeActionParams( state: State, @@ -213,9 +211,6 @@ ): Promise { let document = state.editor.documents.get(params.textDocument.uri) let documentText = document.getText() import { getDiagnostics } from '../diagnostics/diagnosticsProvider' - CodeActionParams, - let cssText = documentText -import { getDiagnostics } from '../diagnostics/diagnosticsProvider' Range, let change: TextEdit @@ -223,110 +218,105 @@ let totalClassNamesInClassList = diagnostic.className.classList.classList.split( /\s+/ ).length -import { rangesEqual } from '../../util/rangesEqual' + isInvalidScreenDiagnostic, - let languageBoundaries = getLanguageBoundaries(state, document) -import { rangesEqual } from '../../util/rangesEqual' CodeAction, +} from 'vscode-languageserver' import { - changes: { - isWithinRange(diagnostic.range.start, range) + return (root) => { - ) - if (!cssRange) return [] -import { rangesEqual } from '../../util/rangesEqual' + CodeAction, } from 'vscode-languageserver' - } CodeActionParams, - Range, - try { - await postcss([ - postcss.plugin('', (_options = {}) => { - return (root) => { - DiagnosticKind, CodeAction, - if (change) return false + isInvalidTailwindDirectiveDiagnostic(diagnostic) || - rule.walkAtRules('apply', (atRule) => { - DiagnosticKind, + isInvalidScreenDiagnostic, Range, - DiagnosticKind, + isInvalidScreenDiagnostic, TextEdit, - DiagnosticKind, + isInvalidScreenDiagnostic, } from 'vscode-languageserver' - DiagnosticKind, + isInvalidScreenDiagnostic, import { State } from '../../util/state' - DiagnosticKind, + isInvalidScreenDiagnostic, import { isWithinRange } from '../../util/isWithinRange' CodeAction, +import { State } from '../../util/state' + }, CodeAction, +import { State } from '../../util/state' import { CodeAction, +import { State } from '../../util/state' CodeAction, CodeAction, +import { State } from '../../util/state' CodeActionParams, - }, + }, CodeAction, +import { State } from '../../util/state' CodeActionKind, + CodeAction, +import { State } from '../../util/state' Range, CodeAction, +import { State } from '../../util/state' TextEdit, CodeAction, + newText: suggestion, + isInvalidVariantDiagnostic, CodeActionKind, CodeAction, -} from 'vscode-languageserver' + }, CodeAction, import { State } from '../../util/state' +import { isWithinRange } from '../../util/isWithinRange' CodeAction, import { isWithinRange } from '../../util/isWithinRange' - } - - AugmentedDiagnostic, CodeAction, -import { +import { isWithinRange } from '../../util/isWithinRange' import { CodeAction, -import { +import { isWithinRange } from '../../util/isWithinRange' CodeAction, CodeAction, -import { +import { isWithinRange } from '../../util/isWithinRange' CodeActionParams, CodeAction, -import { +import { isWithinRange } from '../../util/isWithinRange' CodeActionKind, - AugmentedDiagnostic, + CodeActionParams, Range, CodeAction, -import isObject from '../../../util/isObject' - CodeActionParams, +import { isWithinRange } from '../../util/isWithinRange' Range, CodeAction, -import { getDiagnostics } from '../diagnostics/diagnosticsProvider' + d.message === diagnostic.message && CodeAction, -import { import { State } from '../../util/state' - isInvalidApplyDiagnostic, CodeActionKind, CodeAction, -import { import { isWithinRange } from '../../util/isWithinRange' + TextEdit, CodeAction, - isInvalidApplyDiagnostic, + .then((x) => dedupeBy(x, (item) => JSON.stringify(item.edit))) CodeAction, - AugmentedDiagnostic, +function classNameToAst( CodeAction, - InvalidApplyDiagnostic, + className: string, CodeAction, +import { State } from '../../util/state' CodeActionKind, - InvalidApplyDiagnostic, CodeActionParams, - let documentIndent = detectIndent(documentText) + let documentIndent = detectIndent(documentText) +import { flatten, dedupeBy } from '../../../util/array' CodeAction, - isInvalidConfigPathDiagnostic, + range: { start: { line: rule.source.start.line - 1, character: rule.source.start.column - 1, @@ -323,75 +324,60 @@ end: { line: rule.source.end.line - 1, character: rule.source.end.column, }, - CodeAction, + }, + CodeActionParams, CodeActionKind, - CodeAction, + CodeActionParams, Range, - CodeAction, + (insertedRule.raws.before || '\n\n') + import { flatten, dedupeBy } from '../../../util/array' +} from 'vscode-languageserver' - CodeAction, + CodeActionParams, - CodeActionKind, +import { State } from '../../util/state' CodeActionParams, - Range, +import { isWithinRange } from '../../util/isWithinRange' - CodeAction, import { joinWithAnd } from '../../util/joinWithAnd' - CodeAction, CodeActionParams, - CodeAction, +const dlv = require('dlv') +import { joinWithAnd } from '../../util/joinWithAnd' CodeAction, CodeActionParams, +import { CodeActionParams, - CodeAction, CodeActionParams, +import { CodeActionKind, - CodeAction, CodeActionParams, +import { Range, - CodeAction, CodeActionParams, +import { TextEdit, - CodeAction, CodeActionParams, +import { } from 'vscode-languageserver' - CodeAction, CodeActionParams, -import { State } from '../../util/state' - .replace(/(@apply [^;\n]+)$/gm, '$1;') - .replace(/([^\s^]){$/gm, '$1 {') - UtilityConflictsDiagnostic, import { +import { State } from '../../util/state' CodeAction, +import { State } from '../../util/state' CodeActionKind, - CodeAction, - UtilityConflictsDiagnostic, CodeActionParams, + Range, - new RegExp(outputIndent, 'g'), + return false CodeAction, - CodeActionKind, Range, - ) - }), - CodeAction, - CodeActionKind, CodeActionParams, - Range, CodeAction, - d.message === diagnostic.message && - }) - isInvalidConfigPathDiagnostic, + CodeActionParams, CodeAction, - Range, import { + CodeActionParams, CodeAction, - Range, CodeAction, - isInvalidConfigPathDiagnostic, CodeActionParams, CodeAction, -} -import { isWithinRange } from '../../util/isWithinRange' CodeActionParams, - } if (!change) { return []