Sfall-ScriptEditor

Форк
0
59 строк · 2.0 Кб
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using System.Drawing;
6

7
using ScriptEditor.CodeTranslation;
8

9
using ICSharpCode.TextEditor.Document;
10

11
namespace ScriptEditor.SyntaxRules
12
{
13
    internal class HighlightProcedures
14
    {
15
        static public void AddAllToList(IDocument document, Procedure[] procs)
16
        {
17
            bool refresh = false;
18
            HighlightExtraWord procedures = document.ExtraWordList;
19
            foreach (var p in procs)
20
            {
21
                string name = p.Name;
22
                if (!p.IsStandart() && !procedures.WordExist(name)) { // ProgramInfo.opcodes_list.ContainsKey(name)
23
                    procedures.AddToList(document, name);
24
                    refresh = true;
25
                }
26
            }
27
            if (refresh) document.HighlightingStrategy.MarkTokens(document);
28
        }
29

30
        static public void AddToList(IDocument document, string name)
31
        {
32
            document.ExtraWordList.AddToList(document, name.ToLowerInvariant());
33
            document.HighlightingStrategy.MarkTokens(document);
34
        }
35

36
        static public void DeleteFromList(IDocument document, string name)
37
        {
38
            document.ExtraWordList.RemoveFromList(name.ToLowerInvariant());
39
            document.HighlightingStrategy.MarkTokens(document);
40
        }
41

42
        static public void UpdateList(IDocument document, Procedure[] procs)
43
        {
44
            var pList = new HashSet<string>();
45
            foreach (var p in procs)
46
            {
47
                if (p.IsStandart()) continue;
48

49
                string name = p.Name;
50
                pList.Add(name);
51
                if (!document.ExtraWordList.WordExist(name)) {
52
                    document.ExtraWordList.AddToList(document, name); // add procedure
53
                }
54
            }
55
            document.ExtraWordList.WordListRefresh(pList); // remove outdate procedures
56
            document.HighlightingStrategy.MarkTokens(document);
57
        }
58
    }
59
}
60

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.