• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# CodeCompletion.SymScope类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中CodeCompletion.SymScope的典型用法代码示例。如果您正苦于以下问题:C# SymScope类的具体用法?C# SymScope怎么用?C# SymScope使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



SymScope类属于CodeCompletion命名空间,在下文中一共展示了SymScope类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: GetUnit

		public SymScope GetUnit(string FileName)
		{
			try
			{
				root_scope = unit_cache[FileName] as SymScope;
				if (root_scope != null) return root_scope;
				unit_name = System.IO.Path.GetFileNameWithoutExtension(FileName);
				this.readDebugInfo = true;
				this.FileName = FileName;
				if (!File.Exists(FileName)) return null;
            	dir = System.IO.Path.GetDirectoryName(FileName);
            	fs = new FileStream(FileName, FileMode.Open, FileAccess.Read);
            	br = new BinaryReader(fs);
            	ReadPCUHeader();
            	root_scope = new InterfaceUnitScope(new SymInfo(unit_name, SymbolKind.Namespace,unit_name),null);
            	unit_cache[FileName] = root_scope;
            	cur_scope = root_scope;
            	AddReferencedAssemblies();
            	ReadInterfacePart();
            	fs.Close();
			}
			catch (Exception e)
			{
				fs.Close();
				return root_scope;
			}
            return root_scope;
		}
开发者ID:lisiynos,项目名称:pascalabcnet,代码行数:28,代码来源:CodeCompletionPCUReader.cs


示例2: GetName

 /// <summary>
 /// Получение имен после точки
 /// </summary>
 public SymInfo[] GetName(expression expr, string str, int line, int col, PascalABCCompiler.Parsers.KeywordKind keyword, ref SymScope root)
 {
     if (visitor.cur_scope == null) return null;
     if (col + 1 > str.Length)
         col -= str.Length;
     SymScope si = visitor.FindScopeByLocation(line + 1, col + 1);//stv.cur_scope;
     if (si == null)
     {
         si = visitor.FindScopeByLocation(line, col + 1);
         if (si == null)
             return null;
     }
     SetCurrentUsedAssemblies();
     ExpressionVisitor ev = new ExpressionVisitor(expr, si, visitor);
     si = ev.GetScopeOfExpression(true, false);
     root = si;
     if (si is ElementScope) root = (si as ElementScope).sc;
     else if (si is ProcScope) root = (si as ProcScope).return_type;
     if (si != null)
     {
         if (!(si is TypeScope) && !(si is NamespaceScope))
         {
             SymInfo[] syms = si.GetNamesAsInObject(ev);
             SymInfo[] ext_syms = null;
             if (si is ElementScope)
                 ext_syms = visitor.cur_scope.GetSymInfosForExtensionMethods((si as ElementScope).sc as TypeScope);
             List<SymInfo> lst = new List<SymInfo>();
             lst.AddRange(syms);
             if (ext_syms != null)
                 lst.AddRange(ext_syms);
             RestoreCurrentUsedAssemblies();
             List<SymInfo> lst_to_remove = new List<SymInfo>();
             foreach (SymInfo si2 in lst)
                 if (si2.name.StartsWith("operator"))
                     lst_to_remove.Add(si2);
             foreach (SymInfo si2 in lst_to_remove)
                 lst.Remove(si2);
             return lst.ToArray();
         }
         else
         {
             if (si is TypeScope)
             {
                 RestoreCurrentUsedAssemblies();
                 return (si as TypeScope).GetNames(ev, keyword, false);
             }
             else
             {
                 if (ev.entry_scope.InUsesRange(line + 1, col + 1))
                     keyword = PascalABCCompiler.Parsers.KeywordKind.Uses;
                 RestoreCurrentUsedAssemblies();
                 return (si as NamespaceScope).GetNames(ev, keyword);
             }
         }
     }
     RestoreCurrentUsedAssemblies();
     return null;
 }
开发者ID:Slav76,项目名称:pascalabcnet,代码行数:61,代码来源:DomConverter.cs


示例3: ComboBoxItem

			public ComboBoxItem(SymScope item, string text, int iconIndex, bool isInCurrentPart, bool is_global)
			{
				this.item = item;
				if (item != null)
				pos = item.GetPosition();
				this.text = text;
				this.iconIndex = iconIndex;
				this.isInCurrentPart = true;
				this.is_global = is_global;
			}
开发者ID:lisiynos,项目名称:pascalabcnet,代码行数:10,代码来源:QuickClassBrowserPanel.cs


示例4: LoadWithSources

		public static void LoadWithSources(SymScope unit, string fileName)
		{
			if (ht[unit] != null) return;
            string xml_loc = CodeCompletionTools.XmlDoc.LookupLocalizedXmlDocForUnitWithSources(fileName, CodeCompletionController.currentLanguageISO);
			if (xml_loc != null)
			{
                CodeCompletionTools.XmlDoc xdoc = CodeCompletionTools.XmlDoc.Load(xml_loc, Environment.GetEnvironmentVariable("TEMP"), false);
				ht[unit] = xdoc;
			}
		}
开发者ID:PascalABC-CompilerLaboratory,项目名称:pascalabcnet,代码行数:10,代码来源:UnitXmlDocs.cs


示例5: GetScopeOfExpression

		public SymScope GetScopeOfExpression(bool by_dot, bool on_bracket)
		{
			if (expr is const_node && !(expr is string_const) && !(expr is char_const) && !(expr is bool_const))
				return null;
			this.on_bracket = on_bracket;
			try
			{
				expr.visit(this);
			}
			catch (Exception e)
			{
				returned_scope = null;
			}
			if (returned_scope != null && returned_scope is ElementScope && (returned_scope as ElementScope).sc is ProcType)
			{
				if (by_dot) 
                    if (((returned_scope as ElementScope).sc as ProcType).target.return_type != null) 
                        returned_scope = new ElementScope(((returned_scope as ElementScope).sc as ProcType).target.return_type);
					else 
                        returned_scope = null;
			}
			else if (returned_scope != null && returned_scope is ElementScope && (returned_scope as ElementScope).sc is ProcScope)
			{
                ProcScope ps = (returned_scope as ElementScope).sc as ProcScope;
                TypeScope return_type = ps.return_type;
                if (ps.is_constructor)
                    return_type = ps.declaringType;
                if (by_dot) 
                    if (return_type != null) 
                        returned_scope = new ElementScope(return_type);
					else 
                        returned_scope = null;
			}
            else if (returned_scope != null && returned_scope is ElementScope && (returned_scope as ElementScope).sc is CompiledScope && ((returned_scope as ElementScope).sc as CompiledScope).CompiledType.BaseType == typeof(MulticastDelegate))
            {
                ProcScope invoke_meth = ((returned_scope as ElementScope).sc as CompiledScope).FindNameOnlyInThisType("Invoke") as ProcScope;
                if (invoke_meth != null)
                    returned_scope = new ElementScope(invoke_meth.return_type);
            }
            else if (returned_scope != null && returned_scope is ProcScope)
            {
                ProcScope ps = returned_scope as ProcScope;
                TypeScope return_type = ps.return_type;
                if (ps.is_constructor)
                    return_type = ps.declaringType;
                if (return_type == null)
                {
                    if (by_dot) returned_scope = null;
                }
                else if (by_dot)
                    returned_scope = new ElementScope(return_type);
            }
			return returned_scope;
		}
开发者ID:Slav76,项目名称:pascalabcnet,代码行数:54,代码来源:ExpressionVisitor.cs


示例6: GetScopeOfExpression

		public SymScope GetScopeOfExpression()
		{
			if (expr is const_node && !(expr is string_const) && !(expr is char_const) && !(expr is bool_const))
				return null;
			if (mouse_hover && (expr is typeof_operator || expr is sizeof_operator))
				return null;
			try
			{
				expr.visit(this);
			}
			catch(Exception e)
			{
				returned_scope = null;
			}
			if (returned_scope != null && returned_scope is ElementScope && (returned_scope as ElementScope).sc is ProcScope)
			{
				if ((returned_scope as ElementScope).si.kind == SymbolKind.Delegate)
					returned_scope = (returned_scope as ElementScope).sc;
			}
				//else ret_scope = (ret_scope as ElementScope).sc as ProcScope;
			return returned_scope;
		}
开发者ID:lisiynos,项目名称:pascalabcnet,代码行数:22,代码来源:ExpressionVisitor.cs


示例7: BlockScope

 public BlockScope(SymScope topScope)
 {
     this.topScope = topScope;
     this.si = new SymInfo("$block_scope", SymbolKind.Block, "$block_scope");
     this.members = new List<SymScope>();
 }
开发者ID:Slav76,项目名称:pascalabcnet,代码行数:6,代码来源:SymTable.cs


示例8: AddName

 public override void AddName(string name, SymScope sc)
 {
     if (members == null) members = new List<SymScope>();
     base.AddName(name, sc);
 }
开发者ID:Slav76,项目名称:pascalabcnet,代码行数:5,代码来源:SymTable.cs


示例9: AddUsedUnit

 public void AddUsedUnit(SymScope unit)
 {
     used_units.Add(unit);
 }
开发者ID:Slav76,项目名称:pascalabcnet,代码行数:4,代码来源:SymTable.cs


示例10: AddDescribeToComplete

		public static void AddDescribeToComplete(SymScope value)
		{
			if (value is TypeScope) AddDescribeToComplete(value as TypeScope);
			else if (value is ProcScope) AddDescribeToComplete(value as ProcScope);
			else if (value is ElementScope) AddDescribeToComplete(value as ElementScope);
			else if (value is InterfaceUnitScope) AddDescribeToComplete(value as InterfaceUnitScope);
		}
开发者ID:PascalABC-CompilerLaboratory,项目名称:pascalabcnet,代码行数:7,代码来源:UnitXmlDocs.cs


示例11: IsEqual

 public override bool IsEqual(SymScope ts)
 {
     if (ts is CompiledEventScope && (ts as CompiledEventScope).ei == this.ei) return true;
     return false;
 }
开发者ID:Slav76,项目名称:pascalabcnet,代码行数:5,代码来源:SymTable.cs


示例12: InterfaceUnitScope

 public InterfaceUnitScope(SymInfo si, SymScope topScope)
     : base(si, topScope)
 {
     UnitDocCache.AddDescribeToComplete(this);
     this.symbol_table = new Hashtable(StringComparer.CurrentCultureIgnoreCase);
     si.description = this.ToString();
 }
开发者ID:Slav76,项目名称:pascalabcnet,代码行数:7,代码来源:SymTable.cs


示例13: IsChildScopeOf

 public virtual bool IsChildScopeOf(SymScope ss)
 {
     return false;
 }
开发者ID:Slav76,项目名称:pascalabcnet,代码行数:4,代码来源:SymTable.cs


示例14: GetClassMembers

 void GetClassMembers(SymScope ss, ArrayList items)
 {
     if (ss != null && ss.members != null)
     {
         ArrayList meths = new ArrayList();
         ArrayList fields = new ArrayList();
         ArrayList events = new ArrayList();
         ArrayList vars = new ArrayList();
         ArrayList props = new ArrayList();
         ArrayList consts = new ArrayList();
         foreach (SymScope el in ss.members)
             //if (el.si.kind == SymbolKind.Method || el.si.kind == SymbolKind.Constant || el.si.kind == SymbolKind.Variable || el.si.kind == SymbolKind.Event || el.si.kind == SymbolKind.Field
             //|| el.si.kind == SymbolKind.Property)
             if (el.GetPosition().file_name != null)
             {
                 ComboBoxItem cbi = new ComboBoxItem(el, el.GetDescriptionWithoutDoc(), CodeCompletionProvider.ImagesProvider.GetPictureNum(el.si), true, false);
                 switch (el.si.kind)
                 {
                     case SymbolKind.Method: meths.Add(cbi); break;
                     case SymbolKind.Field: fields.Add(cbi); break;
                     case SymbolKind.Property: props.Add(cbi); break;
                     case SymbolKind.Variable: vars.Add(cbi); break;
                     case SymbolKind.Event: events.Add(cbi); break;
                     case SymbolKind.Constant: consts.Add(cbi); break;
                 }
                 //items.Add(new ComboBoxItem(el,el.GetDescriptionWithoutDoc(),CodeCompletionProvider.ImagesProvider.GetPictureNum(el.si),true));
             }
         meths.Sort(new Comparer(System.Globalization.CultureInfo.InvariantCulture));
         items.AddRange(meths);
         props.Sort(new Comparer(System.Globalization.CultureInfo.InvariantCulture));
         items.AddRange(props);
         fields.Sort(new Comparer(System.Globalization.CultureInfo.InvariantCulture));
         items.AddRange(fields);
         vars.Sort(new Comparer(System.Globalization.CultureInfo.InvariantCulture));
         items.AddRange(vars);
         consts.Sort(new Comparer(System.Globalization.CultureInfo.InvariantCulture));
         items.AddRange(consts);
         events.Sort(new Comparer(System.Globalization.CultureInfo.InvariantCulture));
         items.AddRange(events);
     }
 }
开发者ID:lisiynos,项目名称:pascalabcnet,代码行数:41,代码来源:QuickClassBrowserPanel.cs


示例15: WithScope

 public WithScope(SymScope topScope)
 {
     this.topScope = topScope;
     this.si = new SymInfo("$with_block", SymbolKind.Block, "$with_block");
 }
开发者ID:Slav76,项目名称:pascalabcnet,代码行数:5,代码来源:SymTable.cs


示例16: GetDocumentation

		public static string GetDocumentation(SymScope unit, string descr)
		{
			try
			{
                CodeCompletionTools.XmlDoc xdoc = (CodeCompletionTools.XmlDoc)ht[unit];
				if (xdoc != null)
				{
					string s = GetNormalHint(xdoc.GetDocumentation(descr,false));
					return s;
				}
			}
			catch(Exception e)
			{
				
			}
			return "";
		}
开发者ID:PascalABC-CompilerLaboratory,项目名称:pascalabcnet,代码行数:17,代码来源:UnitXmlDocs.cs


示例17: AddWithScope

 public void AddWithScope(SymScope ss, bool is_type)
 {
     with_scopes.Add(new TypeScopeDesc(ss, is_type));
 }
开发者ID:Slav76,项目名称:pascalabcnet,代码行数:4,代码来源:SymTable.cs


示例18: TypeScopeDesc

 public TypeScopeDesc(SymScope ss, bool is_type)
 {
     this.ss = ss;
     this.is_type = is_type;
 }
开发者ID:Slav76,项目名称:pascalabcnet,代码行数:5,代码来源:SymTable.cs


示例19: ChangeInternal

		void ChangeInternal()
		{
			bool first_comp;
			CodeCompletion.DomConverter dconv=null;
			bool tmp = true;
            while (true)
            {
                first_comp = false;
                if (this.Visible)
                    try
                    {
                        if (currentCompilationUnit == null && textAreaControl.FileName != null)
                        {
                            dconv = (CodeCompletion.DomConverter)CodeCompletion.CodeCompletionController.comp_modules[textAreaControl.FileName];
                            if (dconv != null && dconv.is_compiled)
                            {
                                currentCompilationUnit = dconv.stv.entry_scope;
                                first_comp = true;
                            }
                            if (clicked || tmp)
                            {
                                FillClassComboBox(true);
                                //clicked = false;
                                tmp = false;
                            }
                        }
                        if (currentCompilationUnit != null && (clicked || first_comp))
                        {
                            dconv = (CodeCompletion.DomConverter)CodeCompletion.CodeCompletionController.comp_modules[textAreaControl.FileName];
                            if (dconv != null && dconv.is_compiled)
                            {
                                currentCompilationUnit = dconv.stv.entry_scope;
                                FillClassComboBox(true);
                            }

                            //FillMembersComboBox();
                            //UpdateClassComboBox();
                            //UpdateMembersComboBox();
                        }
                        //lock(clicked)
                        {
                            clicked = false;
                        }
                    }
                    catch (Exception ex)
                    {
                        //MessageService.ShowError(ex);
                    }
                Thread.Sleep(300);
            }
		}
开发者ID:lisiynos,项目名称:pascalabcnet,代码行数:51,代码来源:QuickClassBrowserPanel.cs


示例20: Dispose

		protected override void Dispose(bool disposing)
		{
			if (disposing) {
				this.textAreaControl.ActiveTextAreaControl.Caret.PositionChanged -= new EventHandler(CaretPositionChanged);
				this.membersComboBox.Dispose();
				this.classComboBox.Dispose();
				this.currentCompilationUnit = null;
				th.Abort();
			}
			base.Dispose(disposing);
		}
开发者ID:lisiynos,项目名称:pascalabcnet,代码行数:11,代码来源:QuickClassBrowserPanel.cs



注:本文中的CodeCompletion.SymScope类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# CodeCompletion.TypeScope类代码示例发布时间:2022-05-24
下一篇:
C# CodeCompletion.ExpressionVisitor类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap