Exemplo n.º 1
0
 static public void RebuildPrimitiveTypeHash()
 {
     _primitiveTypeHash = new UIDEHashTable();
     for (int i = 0; i < primitiveTypes.Length; i++)
     {
         _primitiveTypeHash.Set(primitiveTypes[i], primitiveTypes[i]);
     }
 }
Exemplo n.º 2
0
 static public void RebuildModifierHash()
 {
     _modifierHash = new UIDEHashTable();
     for (int i = 0; i < modifiers.Length; i++)
     {
         _modifierHash.Set(modifiers[i], modifiers[i]);
     }
 }
Exemplo n.º 3
0
 static public void RebuildKeywordHash()
 {
     _keywordHash = new UIDEHashTable();
     for (int i = 0; i < keywords.Length; i++)
     {
         _keywordHash.Set(keywords[i], keywords[i]);
     }
 }
Exemplo n.º 4
0
        void UpdateAutoCompleteListActual(bool isChain)
        {
            //float startTime = Time.realtimeSinceStartup;
            string startingAutoCompleteKey = autoCompleteKey;

            CompletionItem[] completionItems = new CompletionItem[0];
            if (startingAutoCompleteKey == ".") {
                startingAutoCompleteKey = "";
            }

            if (isChain) {
                completionItems = editor.syntaxRule.GetChainCompletionItems();
            }
            else {
                completionItems = editor.syntaxRule.GetGlobalCompletionItems();

            }

            //Debug.Log("AutoCompleteKey: "+startingAutoCompleteKey+" "+isChain);
            //Dictionary<string,,GameObject> bb;
            //bb = new Dictionary<string, UnityEngine.GameObject>
            List<UIDEFuzzySearchItem> inputItems = new List<UIDEFuzzySearchItem>();
            for (int i = 0; i < completionItems.Length; i++) {
                if (completionItems[i] == null) continue;
                if (completionItems[i].displayName.Length == 0) continue;
                char c = completionItems[i].displayName[0];
                if (!char.IsLetter(c) && c != '_') continue;

                if (completionItems[i].isType || completionItems[i].isClassOrStruct) {
                    completionItems[i].name = completionItems[i].GetCompletionFriendlyName();
                }

                UIDEFuzzySearchItem fuzzyItem = new UIDEFuzzySearchItem();
                fuzzyItem.text = CleanStringForSearch(completionItems[i].displayName);
                fuzzyItem.metaObject = completionItems[i];
                inputItems.Add(fuzzyItem);
            }

            UIDEFuzzySearchItem[] sortedFuzzyItems = UIDEFuzzySearch.GetSortedList(startingAutoCompleteKey,inputItems.ToArray(),false,false);

            List<CompletionItem> sortedCompletionItems = new List<CompletionItem>();

            //Type sorting
            CompletionItem lastMetaItem = null;
            UIDEFuzzySearchItem lastFuzzyItem = null;
            for (int i = 0; i < sortedFuzzyItems.Length; i++) {
                CompletionItem metaItem = (CompletionItem)sortedFuzzyItems[i].metaObject;
                if (lastFuzzyItem != null && lastFuzzyItem.score == sortedFuzzyItems[i].score) {
                    int compareValue = metaItem.Compare(lastMetaItem);
                    if (compareValue == 1) {
                        sortedCompletionItems.Insert(i-1,metaItem);
                    }
                    else {
                        sortedCompletionItems.Add(metaItem);
                    }
                }
                else {
                    sortedCompletionItems.Add(metaItem);
                }
                lastMetaItem = metaItem;
                lastFuzzyItem = sortedFuzzyItems[i];
            }

            int bestIndex = 0;
            UIDEHashTable hashTable = new UIDEHashTable();
            List<CompletionItem> acItems = new List<CompletionItem>();
            for (int i = 0; i < sortedCompletionItems.Count; i++) {
                //CompletionItem newItem = new CompletionItem();
                //newItem.fuzzyItem = items[i];

                CompletionItem existingItem = (CompletionItem)hashTable.Get(sortedCompletionItems[i].displayName);
                //if (existingItem != null) {
                //	existingItem.others.Add(newItem);
                //}
                //else {
                if (existingItem == null) {
                    hashTable.Set(sortedCompletionItems[i].displayName,sortedCompletionItems[i]);
                    acItems.Add(sortedCompletionItems[i]);
                }
                //selectedText
            }

            if (acItems.Count <= maxHeight) {
                List<CompletionItem> newACItems = new List<CompletionItem>();
                for (int i = 0; i < acItems.Count; i++) {
                    bool isInsert = (i % 2) == 0;
                    if (isInsert) {
                        bestIndex++;
                        newACItems.Insert(0,acItems[i]);
                    }
                    else {
                        newACItems.Add(acItems[i]);
                    }
                }
                acItems = newACItems;
                bestIndex = Mathf.Max(bestIndex-1,0);
            }

            while (holdAutoCompleteUpdate) {
                Thread.Sleep(1);
            }

            itemList = acItems;

            selectedIndex = bestIndex;
            wantsFunishedUpdateAutoComplete = true;

            editor.editorWindow.Repaint();
            //Debug.Log(Time.realtimeSinceStartup-startTime);
        }
Exemplo n.º 5
0
 public static void RebuildPrimitiveTypeHash()
 {
     _primitiveTypeHash = new UIDEHashTable();
     for (int i = 0; i < primitiveTypes.Length; i++) {
         _primitiveTypeHash.Set(primitiveTypes[i],primitiveTypes[i]);
     }
 }
Exemplo n.º 6
0
 public static void RebuildModifierHash()
 {
     _modifierHash = new UIDEHashTable();
     for (int i = 0; i < modifiers.Length; i++) {
         _modifierHash.Set(modifiers[i],modifiers[i]);
     }
 }
Exemplo n.º 7
0
 public static void RebuildKeywordHash()
 {
     _keywordHash = new UIDEHashTable();
     for (int i = 0; i < keywords.Length; i++) {
         _keywordHash.Set(keywords[i],keywords[i]);
     }
 }
Exemplo n.º 8
0
        void UpdateAutoCompleteListActual(bool isChain)
        {
            //float startTime = Time.realtimeSinceStartup;
            string startingAutoCompleteKey = autoCompleteKey;

            CompletionItem[] completionItems = new CompletionItem[0];
            if (startingAutoCompleteKey == ".")
            {
                startingAutoCompleteKey = "";
            }

            if (isChain)
            {
                completionItems = editor.syntaxRule.GetChainCompletionItems();
            }
            else
            {
                completionItems = editor.syntaxRule.GetGlobalCompletionItems();
            }

            //Debug.Log("AutoCompleteKey: "+startingAutoCompleteKey+" "+isChain);
            //Dictionary<string,,GameObject> bb;
            //bb = new Dictionary<string, UnityEngine.GameObject>
            List <UIDEFuzzySearchItem> inputItems = new List <UIDEFuzzySearchItem>();

            for (int i = 0; i < completionItems.Length; i++)
            {
                if (completionItems[i] == null)
                {
                    continue;
                }
                if (completionItems[i].displayName.Length == 0)
                {
                    continue;
                }
                char c = completionItems[i].displayName[0];
                if (!char.IsLetter(c) && c != '_')
                {
                    continue;
                }

                if (completionItems[i].isType || completionItems[i].isClassOrStruct)
                {
                    completionItems[i].name = completionItems[i].GetCompletionFriendlyName();
                }

                UIDEFuzzySearchItem fuzzyItem = new UIDEFuzzySearchItem();
                fuzzyItem.text       = CleanStringForSearch(completionItems[i].displayName);
                fuzzyItem.metaObject = completionItems[i];
                inputItems.Add(fuzzyItem);
            }

            UIDEFuzzySearchItem[] sortedFuzzyItems = UIDEFuzzySearch.GetSortedList(startingAutoCompleteKey, inputItems.ToArray(), false, false);

            List <CompletionItem> sortedCompletionItems = new List <CompletionItem>();

            //Type sorting
            CompletionItem      lastMetaItem  = null;
            UIDEFuzzySearchItem lastFuzzyItem = null;

            for (int i = 0; i < sortedFuzzyItems.Length; i++)
            {
                CompletionItem metaItem = (CompletionItem)sortedFuzzyItems[i].metaObject;
                if (lastFuzzyItem != null && lastFuzzyItem.score == sortedFuzzyItems[i].score)
                {
                    int compareValue = metaItem.Compare(lastMetaItem);
                    if (compareValue == 1)
                    {
                        sortedCompletionItems.Insert(i - 1, metaItem);
                    }
                    else
                    {
                        sortedCompletionItems.Add(metaItem);
                    }
                }
                else
                {
                    sortedCompletionItems.Add(metaItem);
                }
                lastMetaItem  = metaItem;
                lastFuzzyItem = sortedFuzzyItems[i];
            }

            int                   bestIndex = 0;
            UIDEHashTable         hashTable = new UIDEHashTable();
            List <CompletionItem> acItems   = new List <CompletionItem>();

            for (int i = 0; i < sortedCompletionItems.Count; i++)
            {
                //CompletionItem newItem = new CompletionItem();
                //newItem.fuzzyItem = items[i];

                CompletionItem existingItem = (CompletionItem)hashTable.Get(sortedCompletionItems[i].displayName);
                //if (existingItem != null) {
                //	existingItem.others.Add(newItem);
                //}
                //else {
                if (existingItem == null)
                {
                    hashTable.Set(sortedCompletionItems[i].displayName, sortedCompletionItems[i]);
                    acItems.Add(sortedCompletionItems[i]);
                }
                //selectedText
            }

            if (acItems.Count <= maxHeight)
            {
                List <CompletionItem> newACItems = new List <CompletionItem>();
                for (int i = 0; i < acItems.Count; i++)
                {
                    bool isInsert = (i % 2) == 0;
                    if (isInsert)
                    {
                        bestIndex++;
                        newACItems.Insert(0, acItems[i]);
                    }
                    else
                    {
                        newACItems.Add(acItems[i]);
                    }
                }
                acItems   = newACItems;
                bestIndex = Mathf.Max(bestIndex - 1, 0);
            }

            while (holdAutoCompleteUpdate)
            {
                Thread.Sleep(1);
            }

            itemList = acItems;

            selectedIndex = bestIndex;
            wantsFunishedUpdateAutoComplete = true;

            editor.editorWindow.Repaint();
            //Debug.Log(Time.realtimeSinceStartup-startTime);
        }