Member 12702368 Ответов: 0

Как раскрасить слова в codemirror с условием?


Я строю свой собственный язык на codemirror , у меня есть массив, содержащий имя моих классов, и у меня также есть temp array (когда я набираю имя класса, то загружаю поля этого класса в temp array)

Например, если у меня есть два класса:

Имя первого класса-это данные, а его поля-это:

fname, lname, возраст

Имя второго класса-информация, а его поля -:

мать, отец

когда я печатаю на codemirror данные затем темп массива содержат (имени,lname в,данных), когда я типа на codemirror информация затем темп массива содержат (мать,отец)
Чего я хочу

Цвет поля в определенный цвет, только если оно происходит от имени собственного класса (мне.е, когда я типа на данные codemirror.имени, я хочу цвет Слово имени, в синий цвет, но когда я типа на codemirror информация.имени, я не хочу, чтобы цвет слова имени, в синий цвет, потому что (имени не содержатся в классе "информация"))

Что я пытаюсь
<pre lang="Javascript">CodeMirror.defineMode("mymode", function() {    
    return {
        token: function(stream,state) {
            for (var i = 0; i <classname.length ;="" i++)="" {="" if="" (stream.match(classname[i])="" )="" return="" "style1";="" }="" for="" (var="" i="0;" <temp.length="" (stream.match(temp[i])="" "style2";="" };="" });<="" pre="">


Моя проблема в моей попытке

содержание массива temp изменяется, когда я набираю имя класса на codemirror ... Итак, что произошло : когда я печатаю на данные codemirror.имени, то слово имени, цвет в синий, но если я Тип на codemirror данных.имени информация.мама (пока я типа информация.слово мать Цвет имени в голубое, потому что оно содержит в темп массива (имени,lname в,данных), но после того, как я типа информация.мать содержать темп массива является изменение (мать,отец) ) так что цвет имени, стал черный

эта картина показывает вам выполнение

здесь слово "fname" окрашено в синий цвет :

[^]

здесь цвет слова "fname" изменился и стал черным:
https://i.stack.imgur.com/DF2U7.png[^]

Я знал свою проблему, потому что содержание массива temp-это изменение... Но я не могу найти способ решить эту проблему... так что какая-нибудь помощь?

Что я уже пробовал:

моя попытка в моем вопросе выше ... любая помощь я очень стараюсь

Member 12702368

кто-нибудь поможет ?

0 Ответов