Как предоставить предложения по коду CSS на основе синтаксиса определения значения

#css #typescript #autocomplete #frontend #intellisense

Вопрос:

Я пытаюсь реализовать функцию автозаполнения CSS, основанную на синтаксисе определения значения.

В данный момент мне приходится анализировать синтаксис определения, который хорошо работает (с использованием css-дерева) для простого синтаксиса , такого как <length> | <percentage> | min-content | max-content | auto , но вскоре он становится очень сложным, например [ <line-names>? [ <track-size> | <track-repeat> ] ] <line-names>?

Поскольку CSS intellisense присутствует повсюду, мне интересно, существуют ли библиотеки, которые принимают строку кода CSS и синтаксис определения в качестве входных данных и выводят дополнительные строки, которые делают входную строку допустимой.

Например:

 import { autocompleteCss } from 'some-lib';

const suggest = autocompleteCss('1px solid bl', '<line-width> || <line-style> || <color>');

console.log(suggest);
// output: ['ue', 'ack']
 

Спасибо.