示例#1
0
        private void ParseFile(string filePath)
        {
            if (!filePath.EndsWith(".ts"))
            {
                return;
            }

            string modulePath;

            string[] classNames;
            if (UnityHelper.ResolveScriptRef(_baseDir, filePath, out modulePath, out classNames))
            {
                foreach (var className in classNames)
                {
                    var hint = new JSScriptClassPathHint(filePath, modulePath, className);
                    _scriptClassPaths.Add(hint.ToClassPath(), hint);
                }
            }
        }
示例#2
0
        private void ParseFile(string filePath)
        {
            if (!filePath.EndsWith(_fileExt))
            {
                return;
            }

            var    results = new List <JSScriptClassPathHint>();
            string normalizedPath;
            string modulePath;

            if (UnityHelper.ResolveScriptRef(_baseDir, filePath, out normalizedPath, out modulePath, results))
            {
                List <string> list;
                if (_fullPathToClassPath.TryGetValue(normalizedPath, out list))
                {
                    foreach (var item in list)
                    {
                        _scriptClassPaths.Remove(item);
                    }
                    list.Clear();
                }
                else
                {
                    list = _fullPathToClassPath[normalizedPath] = new List <string>();
                }

                var classTypes = JSScriptClassType.None;
                foreach (var result in results)
                {
                    var classPath = result.ToClassPath();

                    list.Add(classPath);
                    _scriptClassPaths[classPath] = result;
                    classTypes |= result.classType;
                }

                ModuleSourceChanged?.Invoke(modulePath, classTypes);
            }
        }