diff --git a/packages/autocomplete/src/create.ts b/packages/autocomplete/src/create.ts index f101f8b2ff..0944d93824 100644 --- a/packages/autocomplete/src/create.ts +++ b/packages/autocomplete/src/create.ts @@ -175,7 +175,7 @@ export function createAutocomplete(uno: UnoGenerator): UnocssAutocomplete { function processSuggestions(suggestions: (string[] | undefined)[], prefix = '', suffix = '') { return uniq(suggestions.flat()) - .filter((i): i is string => !!(i && !i.match(/-$/))) + .filter((i): i is string => !!(i && !i.match(/-$/) && !uno.isBlocked(i))) .sort((a, b) => { const numA = +(a.match(/\d+$/)?.[0] || NaN) const numB = +(b.match(/\d+$/)?.[0] || NaN) diff --git a/test/autocomplete.test.ts b/test/autocomplete.test.ts index 9de90d1a7d..794f227722 100644 --- a/test/autocomplete.test.ts +++ b/test/autocomplete.test.ts @@ -111,6 +111,22 @@ describe('autocomplete', () => { ).toMatchSnapshot() }) + it('should not suggest blocked rules', async () => { + const uno = createGenerator({ + presets: [ + presetUno(), + ], + blocklist: [ + /[A-Z]/, + ], + }) + + const ac = createAutocomplete(uno) + + expect((await ac.suggest('text-trueGray-'))) + .toMatchInlineSnapshot('[]') + }) + it('should provide skip DEFAULT', async () => { expect((await ac.suggest('text-red-'))) .toMatchSnapshot()