mirror of
https://github.com/tailwindlabs/tailwindcss.git
synced 2025-12-08 21:36:08 +00:00
Rename completions and remove color information (#5662)
This commit is contained in:
parent
84db333d46
commit
ba9d177891
@ -631,27 +631,17 @@ function registerPlugins(plugins, context) {
|
||||
return output.map((value) => ({ raw: value, extension: 'html' }))
|
||||
}
|
||||
|
||||
// Generate a list of strings for autocompletion purposes. Colors will have a
|
||||
// tuple with options, e.g.:
|
||||
// ['uppercase', 'lowercase', ['bg-red', { color: 'rgb(255 0 0)' }]]
|
||||
context.completions = function () {
|
||||
// TODO: Try and detect color from components?
|
||||
// TODO: Should we provide a simple "public api" file with functions?
|
||||
// Generate a list of strings for autocompletion purposes, e.g.
|
||||
// ['uppercase', 'lowercase', ...]
|
||||
context.getClassList = function () {
|
||||
let output = []
|
||||
|
||||
for (let util of classList) {
|
||||
if (Array.isArray(util)) {
|
||||
let [utilName, options] = util
|
||||
let isColor = [].concat(options.type).includes('color')
|
||||
|
||||
if (isColor) {
|
||||
for (let [value, color] of Object.entries(options?.values ?? {})) {
|
||||
output.push([formatClass(utilName, value), { color }])
|
||||
}
|
||||
} else {
|
||||
for (let value of Object.keys(options?.values ?? {})) {
|
||||
output.push(formatClass(utilName, value))
|
||||
}
|
||||
for (let value of Object.keys(options?.values ?? {})) {
|
||||
output.push(formatClass(utilName, value))
|
||||
}
|
||||
} else {
|
||||
output.push(util)
|
||||
|
||||
@ -1,25 +0,0 @@
|
||||
import resolveConfig from '../src/public/resolve-config'
|
||||
import { createContext } from '../src/lib/setupContextUtils'
|
||||
|
||||
it('should generate completions for every possible class, without variants', () => {
|
||||
let config = {}
|
||||
|
||||
let context = createContext(resolveConfig(config))
|
||||
expect(context.completions()).toBeInstanceOf(Array)
|
||||
|
||||
// Verify we have a `container` for the 'components' section.
|
||||
expect(context.completions()).toContain('container')
|
||||
|
||||
// Verify we handle the DEFAULT case correctly
|
||||
expect(context.completions()).toContain('border')
|
||||
|
||||
// Verify we handle negative values correctly
|
||||
expect(context.completions()).toContain('-inset-1/4')
|
||||
|
||||
// Verify we list extra information for colors (!tuples)
|
||||
let fromBlack = context
|
||||
.completions()
|
||||
.find((value) => Array.isArray(value) && value[0] === 'from-black')
|
||||
|
||||
expect(fromBlack).toMatchObject(['from-black', { color: '#000' }])
|
||||
})
|
||||
18
tests/getClassList.test.js
Normal file
18
tests/getClassList.test.js
Normal file
@ -0,0 +1,18 @@
|
||||
import resolveConfig from '../src/public/resolve-config'
|
||||
import { createContext } from '../src/lib/setupContextUtils'
|
||||
|
||||
it('should generate every possible class, without variants', () => {
|
||||
let config = {}
|
||||
|
||||
let context = createContext(resolveConfig(config))
|
||||
expect(context.getClassList()).toBeInstanceOf(Array)
|
||||
|
||||
// Verify we have a `container` for the 'components' section.
|
||||
expect(context.getClassList()).toContain('container')
|
||||
|
||||
// Verify we handle the DEFAULT case correctly
|
||||
expect(context.getClassList()).toContain('border')
|
||||
|
||||
// Verify we handle negative values correctly
|
||||
expect(context.getClassList()).toContain('-inset-1/4')
|
||||
})
|
||||
Loading…
x
Reference in New Issue
Block a user