Update settings
parent
f262bbbe92
commit
85ba6a42cb
27
package.json
27
package.json
|
@ -71,19 +71,20 @@
|
||||||
"default": {},
|
"default": {},
|
||||||
"markdownDescription": "Enable features in languages that are not supported by default. Add a mapping here between the new language and an already supported language.\n E.g.: `{\"plaintext\": \"html\"}`"
|
"markdownDescription": "Enable features in languages that are not supported by default. Add a mapping here between the new language and an already supported language.\n E.g.: `{\"plaintext\": \"html\"}`"
|
||||||
},
|
},
|
||||||
"tailwindCSS.colorDecorators.enabled": {
|
"tailwindCSS.colorDecorators": {
|
||||||
"type": "boolean",
|
"type": "string",
|
||||||
"default": true,
|
"enum": [
|
||||||
"scope": "language-overridable"
|
"inherit",
|
||||||
},
|
"on",
|
||||||
"tailwindCSS.colorDecorators.classes": {
|
"off"
|
||||||
"type": "boolean",
|
],
|
||||||
"default": true,
|
"markdownEnumDescriptions": [
|
||||||
"scope": "language-overridable"
|
"Color decorators are rendered if `editor.colorDecorators` is `true`.",
|
||||||
},
|
"Color decorators are rendered.",
|
||||||
"tailwindCSS.colorDecorators.cssHelpers": {
|
"Color decorators are not rendered."
|
||||||
"type": "boolean",
|
],
|
||||||
"default": true,
|
"default": "inherit",
|
||||||
|
"markdownDescription": "Controls whether the editor should render inline color decorators for Tailwind CSS classes and helper functions.",
|
||||||
"scope": "language-overridable"
|
"scope": "language-overridable"
|
||||||
},
|
},
|
||||||
"tailwindCSS.validate": {
|
"tailwindCSS.validate": {
|
||||||
|
|
|
@ -47,20 +47,22 @@ export function registerColorDecorator(
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let settings = workspace.getConfiguration(
|
let preference =
|
||||||
'tailwindCSS.colorDecorators',
|
workspace.getConfiguration('tailwindCSS', editor.document)
|
||||||
editor.document
|
.colorDecorators || 'inherit'
|
||||||
)
|
|
||||||
|
|
||||||
if (settings.enabled !== true) {
|
let enabled =
|
||||||
|
preference === 'inherit'
|
||||||
|
? workspace.getConfiguration('editor').colorDecorators
|
||||||
|
: preference === 'on'
|
||||||
|
|
||||||
|
if (enabled !== true) {
|
||||||
editor.setDecorations(colorDecorationType, [])
|
editor.setDecorations(colorDecorationType, [])
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let { colors } = await emitter.emit('getDocumentColors', {
|
let { colors } = await emitter.emit('getDocumentColors', {
|
||||||
document: editor.document.uri.toString(),
|
document: editor.document.uri.toString(),
|
||||||
classes: settings.classes,
|
|
||||||
cssHelpers: settings.cssHelpers,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
editor.setDecorations(
|
editor.setDecorations(
|
||||||
|
|
|
@ -7,7 +7,6 @@ import {
|
||||||
} from '../util/find'
|
} from '../util/find'
|
||||||
import { getClassNameParts } from '../util/getClassNameAtPosition'
|
import { getClassNameParts } from '../util/getClassNameAtPosition'
|
||||||
import { getColor, getColorFromValue } from '../util/color'
|
import { getColor, getColorFromValue } from '../util/color'
|
||||||
import { logFull } from '../util/logFull'
|
|
||||||
import { stringToPath } from '../util/stringToPath'
|
import { stringToPath } from '../util/stringToPath'
|
||||||
const dlv = require('dlv')
|
const dlv = require('dlv')
|
||||||
|
|
||||||
|
@ -15,47 +14,43 @@ export function registerDocumentColorProvider(state: State) {
|
||||||
onMessage(
|
onMessage(
|
||||||
state.editor.connection,
|
state.editor.connection,
|
||||||
'getDocumentColors',
|
'getDocumentColors',
|
||||||
async ({ document, classes, cssHelpers }) => {
|
async ({ document }) => {
|
||||||
let colors = []
|
let colors = []
|
||||||
let doc = state.editor.documents.get(document)
|
let doc = state.editor.documents.get(document)
|
||||||
if (!doc) return { colors }
|
if (!doc) return { colors }
|
||||||
|
|
||||||
if (classes) {
|
let classLists = findClassListsInDocument(state, doc)
|
||||||
let classLists = findClassListsInDocument(state, doc)
|
classLists.forEach((classList) => {
|
||||||
classLists.forEach((classList) => {
|
let classNames = getClassNamesInClassList(classList)
|
||||||
let classNames = getClassNamesInClassList(classList)
|
classNames.forEach((className) => {
|
||||||
classNames.forEach((className) => {
|
let parts = getClassNameParts(state, className.className)
|
||||||
let parts = getClassNameParts(state, className.className)
|
if (!parts) return
|
||||||
if (!parts) return
|
let color = getColor(state, parts)
|
||||||
let color = getColor(state, parts)
|
if (!color) return
|
||||||
if (!color) return
|
colors.push({ range: className.range, color: color.documentation })
|
||||||
colors.push({ range: className.range, color: color.documentation })
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
|
|
||||||
if (cssHelpers) {
|
let helperFns = findHelperFunctionsInDocument(state, doc)
|
||||||
let helperFns = findHelperFunctionsInDocument(state, doc)
|
helperFns.forEach((fn) => {
|
||||||
helperFns.forEach((fn) => {
|
let keys = stringToPath(fn.value)
|
||||||
let keys = stringToPath(fn.value)
|
let base = fn.helper === 'theme' ? ['theme'] : []
|
||||||
let base = fn.helper === 'theme' ? ['theme'] : []
|
let value = dlv(state.config, [...base, ...keys])
|
||||||
let value = dlv(state.config, [...base, ...keys])
|
let color = getColorFromValue(value)
|
||||||
let color = getColorFromValue(value)
|
if (color) {
|
||||||
if (color) {
|
// colors.push({
|
||||||
// colors.push({
|
// range: {
|
||||||
// range: {
|
// start: {
|
||||||
// start: {
|
// line: fn.valueRange.start.line,
|
||||||
// line: fn.valueRange.start.line,
|
// character: fn.valueRange.start.character + 1,
|
||||||
// character: fn.valueRange.start.character + 1,
|
// },
|
||||||
// },
|
// end: fn.valueRange.end,
|
||||||
// end: fn.valueRange.end,
|
// },
|
||||||
// },
|
// color,
|
||||||
// color,
|
// })
|
||||||
// })
|
colors.push({ range: fn.valueRange, color })
|
||||||
colors.push({ range: fn.valueRange, color })
|
}
|
||||||
}
|
})
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
return { colors }
|
return { colors }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue