diff --git a/package/scripts/buildCSSData.mjs b/package/scripts/buildCSSData.mjs index 415945a..27c4c12 100644 --- a/package/scripts/buildCSSData.mjs +++ b/package/scripts/buildCSSData.mjs @@ -201,13 +201,13 @@ const lines = [ "", 'import { Completion } from "../types.js"', "", - "const toCompletions = (prefix: string, values: string): Completion[] => {", - '\treturn values.split(",").map(val => ({ label: prefix + val }))', + "const toCompletions = (prefix: string, icon: string, values: string): Completion[] => {", + '\treturn values.split(",").map(val => ({ label: prefix + val, icon }))', "}", "", ] -let line = 'const cssValues = /* @__PURE__ */ toCompletions("", "' +let line = 'const cssValues = /* @__PURE__ */ toCompletions("", "keyword", "' cssValues.forEach(val => { line += val + "," @@ -215,7 +215,7 @@ cssValues.forEach(val => { lines.push(line.slice(0, -1) + '")', "") -line = 'const atRules = /* @__PURE__ */ toCompletions("@", "' +line = 'const atRules = /* @__PURE__ */ toCompletions("@", "keyword", "' data.atDirectives.forEach(({ name }) => { if (name[1] != "-") line += name.slice(1) + "," @@ -229,7 +229,7 @@ data.pseudoClasses.forEach(({ name }) => { if (name[1] != "-") pseudos.add(name.slice(-2) == "()" ? name.slice(1, -2) : name.slice(1)) }) -line = 'const pseudoClasses = /* @__PURE__ */ toCompletions(":", "' +line = 'const pseudoClasses = /* @__PURE__ */ toCompletions(":", "function", "' pseudos.forEach(pseudo => { line += pseudo + "," }) @@ -242,7 +242,7 @@ data.pseudoElements.forEach(({ name }) => { if (name[2] != "-") pseudos.add(name.slice(-2) == "()" ? name.slice(2, -2) : name.slice(2)) }) -line = 'const pseudoElements = /* @__PURE__ */ toCompletions("::", "' +line = 'const pseudoElements = /* @__PURE__ */ toCompletions("::", "function", "' pseudos.forEach(pseudo => { line += pseudo + "," diff --git a/package/src/extensions/autocomplete/icons.css b/package/src/extensions/autocomplete/icons.css new file mode 100644 index 0000000..9193d40 --- /dev/null +++ b/package/src/extensions/autocomplete/icons.css @@ -0,0 +1,59 @@ +.pce-ac-icon { + display: flex; + flex-shrink: 0; + align-items: center; + margin-right: -0.25em; +} + +.pce-ac-icon::before { + content: ""; + width: 16px; + height: 16px; + background: currentColor; + -webkit-mask: no-repeat var(--mask); + mask: no-repeat var(--mask); +} + +.pce-ac-row[aria-selected] .pce-ac-icon::before { + color: var(--widget__color-active); +} + +/* Icons from https://github.com/microsoft/vscode-codicons, but rewritten to 28% the size gzipped */ + +.pce-ac-icon-namespace { + --mask: url('data:image/svg+xml,'); +} +.pce-ac-icon-unit { + --mask: url('data:image/svg+xml,'); +} +.pce-ac-icon-parameter { + --mask: url('data:image/svg+xml,'); +} +.pce-ac-icon-snippet { + --mask: url('data:image/svg+xml,'); +} +.pce-ac-icon-value, +.pce-ac-icon-enum { + --mask: url('data:image/svg+xml,'); +} +.pce-ac-icon-interface { + --mask: url('data:image/svg+xml,'); +} +.pce-ac-icon-constant { + --mask: url('data:image/svg+xml,'); +} +.pce-ac-icon-class { + --mask: url('data:image/svg+xml,'); +} +.pce-ac-icon-property { + --mask: url('data:image/svg+xml,'); +} +.pce-ac-icon-variable { + --mask: url('data:image/svg+xml,'); +} +.pce-ac-icon-function { + --mask: url('data:image/svg+xml,'); +} +.pce-ac-icon-keyword { + --mask: url('data:image/svg+xml,'); +} diff --git a/package/src/extensions/autocomplete/style.css b/package/src/extensions/autocomplete/style.css index 62f4db6..d1db11f 100644 --- a/package/src/extensions/autocomplete/style.css +++ b/package/src/extensions/autocomplete/style.css @@ -23,10 +23,9 @@ .pce-ac-row { display: flex; - padding: 0 0.3em; + padding: 0 0.2em; height: 1.4em; align-items: center; - justify-content: space-between; gap: 0.5em; cursor: pointer; } @@ -43,6 +42,7 @@ .pce-ac-details { opacity: 0.8; font-size: 90%; + margin-left: auto; } .pce-ac-details:empty { @@ -57,4 +57,5 @@ .pce-ac-row[aria-selected] { background: #1094ff36; + color: var(--widget__color-active); } diff --git a/package/src/extensions/autocomplete/tooltip.ts b/package/src/extensions/autocomplete/tooltip.ts index 933ef14..6976fa4 100644 --- a/package/src/extensions/autocomplete/tooltip.ts +++ b/package/src/extensions/autocomplete/tooltip.ts @@ -15,7 +15,7 @@ let count = 0 const template = createTemplate("