Skip to content

Commit 5696350

Browse files
committed
update css helper hovers
1 parent 1142848 commit 5696350

File tree

4 files changed

+21
-12
lines changed

4 files changed

+21
-12
lines changed

packages/tailwindcss-language-service/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"postcss-selector-parser": "6.0.2",
2828
"semver": "7.3.2",
2929
"sift-string": "0.0.2",
30+
"stringify-object": "3.3.0",
3031
"vscode-emmet-helper-bundled": "0.0.1",
3132
"vscode-languageclient": "7.0.0",
3233
"vscode-languageserver": "7.0.0",

packages/tailwindcss-language-service/src/diagnostics/getInvalidConfigPathDiagnostics.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ function pathToString(path: string | string[]): string {
2020
}, '')
2121
}
2222

23-
function validateConfigPath(
23+
export function validateConfigPath(
2424
state: State,
2525
path: string | string[],
2626
base: string[] = []

packages/tailwindcss-language-service/src/hoverProvider.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { findClassNameAtPosition } from './util/find'
77
import { validateApply } from './util/validateApply'
88
import { getClassNameParts } from './util/getClassNameAtPosition'
99
import * as jit from './util/jit'
10+
import { validateConfigPath } from './diagnostics/getInvalidConfigPathDiagnostics'
1011

1112
export async function doHover(
1213
state: State,
@@ -50,12 +51,14 @@ function provideCssHelperHover(state: State, document: TextDocument, position: P
5051
key = ['theme', ...key]
5152
}
5253

53-
const value = stringifyConfigValue(dlv(state.config, key))
54+
const value = validateConfigPath(state, key).isValid
55+
? stringifyConfigValue(dlv(state.config, key))
56+
: null
5457

5558
if (value === null) return null
5659

5760
return {
58-
contents: { kind: 'plaintext', value },
61+
contents: { kind: 'markdown', value: ['```plaintext', value, '```'].join('\n') },
5962
range: {
6063
start: { line: position.line, character: startChar },
6164
end: {

packages/tailwindcss-language-service/src/util/stringify.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,22 @@ const dlv = require('dlv')
33
import escapeClassName from 'css.escape'
44
import { ensureArray } from './array'
55
import { remToPx } from './remToPx'
6+
import stringifyObject from 'stringify-object'
7+
import isObject from './isObject'
68

79
export function stringifyConfigValue(x: any): string {
8-
if (typeof x === 'string') return x
9-
if (typeof x === 'number') return x.toString()
10-
if (Array.isArray(x)) {
11-
return x
12-
.filter((y) => typeof y === 'string')
13-
.filter(Boolean)
14-
.join(', ')
15-
}
16-
return null
10+
if (isObject(x)) return `${Object.keys(x).length} values`
11+
if (typeof x === 'function') return 'ƒ'
12+
return stringifyObject(x, {
13+
inlineCharacterLimit: Infinity,
14+
singleQuotes: false,
15+
transform: (obj, prop, originalResult) => {
16+
if (typeof obj[prop] === 'function') {
17+
return 'ƒ'
18+
}
19+
return originalResult
20+
},
21+
})
1722
}
1823

1924
export function stringifyCss(

0 commit comments

Comments
 (0)