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

C# ICompletionWidget类代码示例

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

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



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

示例1: ShowWindow

		// ext may be null, but then parameter completion don't work
		public static bool ShowWindow (CompletionTextEditorExtension ext, char firstChar, ICompletionDataList list, ICompletionWidget completionWidget, CodeCompletionContext completionContext)
		{
			try {
				if (ext != null) {
					int inserted = ext.document.Editor.EnsureCaretIsNotVirtual ();
					if (inserted > 0)
						completionContext.TriggerOffset = ext.document.Editor.Caret.Offset;
				}
				if (wnd == null) {
					wnd = new CompletionListWindow ();
					wnd.WordCompleted += HandleWndWordCompleted;
				}
				wnd.Extension = ext;
				try {
					if (!wnd.ShowListWindow (firstChar, list, completionWidget, completionContext)) {
						if (list is IDisposable)
							((IDisposable)list).Dispose ();
						HideWindow ();
						return false;
					}
					
					if (ForceSuggestionMode)
						wnd.AutoSelect = false;
					wnd.Show ();
					DesktopService.RemoveWindowShadow (wnd);
					OnWindowShown (EventArgs.Empty);
					return true;
				} catch (Exception ex) {
					LoggingService.LogError (ex.ToString ());
					return false;
				}
			} finally {
				ParameterInformationWindowManager.UpdateWindow (ext, completionWidget);
			}
		}
开发者ID:harishamdani,项目名称:monodevelop,代码行数:36,代码来源:CompletionWindowManager.cs


示例2: ShowWindow

		public static bool ShowWindow (char firstChar, ICompletionDataList list, ICompletionWidget completionWidget, CodeCompletionContext completionContext, System.Action closedDelegate)
		{
			try {
				if (wnd == null) {
					wnd = new CompletionListWindow ();
					wnd.WordCompleted += HandleWndWordCompleted;
				}
				try {
					if (!wnd.ShowListWindow (firstChar, list, completionWidget, completionContext, closedDelegate)) {
						if (list is IDisposable)
							((IDisposable)list).Dispose ();
						DestroyWindow ();
						return false;
					}
					
					if (ForceSuggestionMode)
						wnd.AutoSelect = false;
					
					OnWindowShown (EventArgs.Empty);
					return true;
				} catch (Exception ex) {
					LoggingService.LogError (ex.ToString ());
					return false;
				}
			} finally {
				ParameterInformationWindowManager.UpdateWindow (completionWidget);
			}
		}
开发者ID:raufbutt,项目名称:monodevelop-old,代码行数:28,代码来源:CompletionWindowManager.cs


示例3: InsertCompletionText

        public void InsertCompletionText(ICompletionWidget widget, CodeCompletionContext context)
        {
            // insert add/remove event handler code after +=/-=
            editor.Replace (initialOffset, editor.Caret.Offset - initialOffset, this.DisplayText + ";");

            // Search opening bracket of member
            int pos = editor.Document.LocationToOffset (callingMember.BodyRegion.Start.Line - 1, callingMember.BodyRegion.Start.Column - 1);
            while (pos < editor.Document.Length && editor.Document.GetCharAt (pos) != '{') {
                pos++;
            }

            // Search closing bracket of member
            pos = editor.Document.GetMatchingBracketOffset (pos) + 1;

            pos = Math.Max (0, Math.Min (pos, editor.Document.Length - 1));

            // Insert new event handler after closing bracket
            string indent = editor.Document.GetLine (callingMember.Location.Line).GetIndentation (editor.Document);

            StringBuilder sb = new StringBuilder ();
            sb.AppendLine ();
            sb.AppendLine ();
            sb.Append (indent);
            if (callingMember.IsStatic)
                sb.Append ("static ");
            sb.Append ("void ");sb.Append (this.DisplayText);sb.Append (' ');sb.Append (this.parameterList);sb.AppendLine ();
            sb.Append (indent);sb.Append ("{");sb.AppendLine ();
            sb.Append (indent);sb.Append (TextEditorProperties.IndentString);
            int cursorPos = pos + sb.Length;
            sb.AppendLine ();
            sb.Append (indent);sb.Append ("}");
            editor.Insert (pos, sb.ToString ());
            editor.Caret.Offset = cursorPos;
        }
开发者ID:vasili,项目名称:FSharpBinding,代码行数:34,代码来源:EventCreationCompletionData.cs


示例4: ProcessKeyEvent

		// Called when a key is pressed in the editor.
		// Returns false if the key press has to continue normal processing.
		internal static bool ProcessKeyEvent (CompletionTextEditorExtension ext, ICompletionWidget widget, KeyDescriptor descriptor)
		{
			if (methods.Count == 0)
				return false;

			MethodData cmd = methods [methods.Count - 1];

			if (descriptor.SpecialKey == SpecialKey.Down) {
				if (cmd.MethodProvider.Count <= 1)
					return false;
				if (cmd.CurrentOverload < cmd.MethodProvider.Count - 1)
					cmd.CurrentOverload ++;
				else
					cmd.CurrentOverload = 0;
				window.ChangeOverload ();
				UpdateWindow (ext, widget);
				return true;
			} else if (descriptor.SpecialKey == SpecialKey.Up) {
				if (cmd.MethodProvider.Count <= 1)
					return false;
				if (cmd.CurrentOverload > 0)
					cmd.CurrentOverload --;
				else
					cmd.CurrentOverload = cmd.MethodProvider.Count - 1;
				window.ChangeOverload ();
				UpdateWindow (ext, widget);
				return true;
			}
			else if (descriptor.SpecialKey == SpecialKey.Escape) {
				HideWindow (ext, widget);
				return true;
			}
			return false;
		}
开发者ID:zenek-y,项目名称:monodevelop,代码行数:36,代码来源:ParameterInformationWindowManager.cs


示例5: PostProcessKeyEvent

		public static void PostProcessKeyEvent (ICompletionWidget widget, Gdk.Key key, Gdk.ModifierType modifier)
		{
			// Called after the key has been processed by the editor
		
			if (methods.Count == 0)
				return;
				
			for (int n=0; n<methods.Count; n++) {
				// If the cursor is outside of any of the methods parameter list, discard the
				// information window for that method.
				
				MethodData md = methods [n];
				int pos = md.MethodProvider.GetCurrentParameterIndex (widget, md.CompletionContext);
				if (pos == -1) {
					methods.RemoveAt (n);
					n--;
				}
			}
			// If the user enters more parameters than the current overload has,
			// look for another overload with more parameters.
			UpdateOverload (widget);
			
			// Refresh.
			UpdateWindow (widget);
		}
开发者ID:Shanto,项目名称:monodevelop,代码行数:25,代码来源:ParameterInformationWindowManager.cs


示例6: ProcessKeyEvent

		// Called when a key is pressed in the editor.
		// Returns false if the key press has to continue normal processing.
		public static bool ProcessKeyEvent (ICompletionWidget widget, Gdk.Key key, Gdk.ModifierType modifier)
		{
			if (methods.Count == 0)
				return false;

			MethodData cmd = methods [methods.Count - 1];
			
			if (key == Gdk.Key.Down) {
				if (cmd.MethodProvider.OverloadCount <= 1)
					return false;
				if (cmd.CurrentOverload < cmd.MethodProvider.OverloadCount - 1)
					cmd.CurrentOverload ++;
				else
					cmd.CurrentOverload = 0;
				UpdateWindow (widget);
				return true;
			}
			else if (key == Gdk.Key.Up) {
				if (cmd.MethodProvider.OverloadCount <= 1)
					return false;
				if (cmd.CurrentOverload > 0)
					cmd.CurrentOverload --;
				else
					cmd.CurrentOverload = cmd.MethodProvider.OverloadCount - 1;
				UpdateWindow (widget);
				return true;
			}
			else if (key == Gdk.Key.Escape) {
				HideWindow (widget);
				return true;
			}
			return false;
		}
开发者ID:Shanto,项目名称:monodevelop,代码行数:35,代码来源:ParameterInformationWindowManager.cs


示例7: ShowWindow

		public static void ShowWindow (char firstChar, ICompletionDataProvider provider, ICompletionWidget completionWidget, ICodeCompletionContext completionContext, CompletionDelegate closedDelegate)
		{
			try {
				if (!wnd.ShowListWindow (firstChar, provider,  completionWidget, completionContext, closedDelegate)) {
					provider.Dispose ();
					return;
				}
				
				// makes control-space in midle of words to work
				string text = wnd.completionWidget.GetCompletionText (completionContext);
				if (text.Length == 0) {
					text = provider.DefaultCompletionString;
					if (text != null && text.Length > 0)
						wnd.SelectEntry (text);
					return;
				}
				
				wnd.PartialWord = text; 
				//if there is only one matching result we take it by default
				if (wnd.IsUniqueMatch && !wnd.IsChanging)
				{	
					wnd.UpdateWord ();
					wnd.Hide ();
				}
				
			} catch (Exception ex) {
				Console.WriteLine (ex);
			}
		}
开发者ID:Kalnor,项目名称:monodevelop,代码行数:29,代码来源:XmlCompletionListWindow.cs


示例8: GetCurrentParameterIndex

		// Returns the index of the parameter where the cursor is currently positioned.
		// -1 means the cursor is outside the method parameter list
		// 0 means no parameter entered
		// > 0 is the index of the parameter (1-based)
		public int GetCurrentParameterIndex (ICompletionWidget widget, CodeCompletionContext ctx)
		{
			int cursor = widget.CurrentCodeCompletionContext.TriggerOffset;
			int i = ctx.TriggerOffset;
			if (i < 0 || i >= editor.Length || editor.GetCharAt (i) == ')')
				return -1;
			
			if (i > cursor)
				return -1;
			else if (i == cursor)
				return 0;
			
			int parameterIndex = 1;
			
			while (i++ < cursor) {
				if (i >= widget.TextLength)
					break;
				char ch = widget.GetChar (i);
				if (ch == ',')
					parameterIndex++;
				else if (ch == ')')
					return -1;
			}
			
			return parameterIndex;
		}
开发者ID:yayanyang,项目名称:monodevelop,代码行数:30,代码来源:DataProvider.cs


示例9: GetCurrentParameterIndex

        public int GetCurrentParameterIndex(ICompletionWidget widget, CodeCompletionContext ctx)
        {
            if (showCompletion)
            {
                return 0;
            }

            return -1;
        }
开发者ID:tjhei,项目名称:md-haxebinding,代码行数:9,代码来源:HaxeParameterDataProvider.cs


示例10: GenerateCompletionData

        public ICompletionData[] GenerateCompletionData(ICompletionWidget widget, char charTyped)
        {
            CodeTemplateGroup templateGroup = CodeTemplateLoader.GetTemplateGroupPerFilename (fileName);
            if (templateGroup == null) {
                return null;
            }
            ArrayList completionData = new ArrayList();
            foreach (CodeTemplate template in templateGroup.Templates) {
                completionData.Add(new TemplateCompletionData(template));
            }

            return (ICompletionData[])completionData.ToArray(typeof(ICompletionData));
        }
开发者ID:slluis,项目名称:monodevelop-prehistoric,代码行数:13,代码来源:TemplateCompletionDataProvider.cs


示例11: OverloadDown

		internal static bool OverloadDown (CompletionTextEditorExtension ext, ICompletionWidget widget)
		{
			if (currentMethodGroup == null)
				return false;
			if (currentMethodGroup.MethodProvider.Count <= 1)
				return false;
			if (currentMethodGroup.CurrentOverload < currentMethodGroup.MethodProvider.Count - 1)
				currentMethodGroup.CurrentOverload ++;
			else
				currentMethodGroup.CurrentOverload = 0;
			window.ChangeOverload ();
			UpdateWindow (ext, widget);
			return true;
		}
开发者ID:swarkcn,项目名称:monodevelop,代码行数:14,代码来源:ParameterInformationWindowManager.cs


示例12: ShowCompletion

		public void ShowCompletion (ICompletionDataList completionList)
		{
			completionWidget = Document.GetContent <ICompletionWidget> ();
			currentCompletionContext = completionWidget.CreateCodeCompletionContext (Document.TextEditorData.Caret.Offset);
			int cpos, wlen;
			if (!GetCompletionCommandOffset (out cpos, out wlen)) {
				cpos = Document.TextEditorData.Caret.Offset;
				wlen = 0;
			}
			currentCompletionContext.TriggerOffset = cpos;
			currentCompletionContext.TriggerWordLength = wlen;
			
			CompletionWindowManager.ShowWindow ('\0', completionList, completionWidget, currentCompletionContext, OnCompletionWindowClosed);
		}
开发者ID:natosha,项目名称:monodevelop,代码行数:14,代码来源:CompletionTextEditorExtension.cs


示例13: OverloadDown

		internal static bool OverloadDown (CompletionTextEditorExtension ext, ICompletionWidget widget)
		{
			if (methods.Count == 0)
				return false;
			MethodData cmd = methods [methods.Count - 1];
			if (cmd.MethodProvider.Count <= 1)
				return false;
			if (cmd.CurrentOverload < cmd.MethodProvider.Count - 1)
				cmd.CurrentOverload ++;
			else
				cmd.CurrentOverload = 0;
			window.ChangeOverload ();
			UpdateWindow (ext, widget);
			return true;
		}
开发者ID:vvarshne,项目名称:monodevelop,代码行数:15,代码来源:ParameterInformationWindowManager.cs


示例14: ProcessKeyEvent

		// Called when a key is pressed in the editor.
		// Returns false if the key press has to continue normal processing.
		internal static bool ProcessKeyEvent (CompletionTextEditorExtension ext, ICompletionWidget widget, KeyDescriptor descriptor)
		{
			if (currentMethodGroup == null)
				return false;

			if (descriptor.SpecialKey == SpecialKey.Down) {
				return OverloadDown (ext, widget);
			} else if (descriptor.SpecialKey == SpecialKey.Up) {
				return OverloadUp (ext, widget);
			}
			else if (descriptor.SpecialKey == SpecialKey.Escape) {
				HideWindow (ext, widget);
				return true;
			}
			return false;
		}
开发者ID:swarkcn,项目名称:monodevelop,代码行数:18,代码来源:ParameterInformationWindowManager.cs


示例15: GenerateCompletionData

        /*		int caretLineNumber;
        int caretColumn;

        string[][] commentTags = new string[][] {
            new string[] {"c", "marks text as code"},
            new string[] {"code", "marks text as code"},
            new string[] {"example", "A description of the code example\n(must have a <code> tag inside)"},
            new string[] {"exception cref=\"\"", "description to an exception thrown"},
            new string[] {"list type=\"\"", "A list"},
            new string[] {"listheader", "The header from the list"},
            new string[] {"item", "A list item"},
            new string[] {"term", "A term in a list"},
            new string[] {"description", "A description to a term in a list"},
            new string[] {"param name=\"\"", "A description for a parameter"},
            new string[] {"paramref name=\"\"", "A reference to a parameter"},
            new string[] {"permission cref=\"\"", ""},
            new string[] {"remarks", "Gives description for a member"},
            new string[] {"include file=\"\" path=\"\"", "Includes comments from other files"},
            new string[] {"returns", "Gives description for a return value"},
            new string[] {"see cref=\"\"", "A reference to a member"},
            new string[] {"seealso cref=\"\"", "A reference to a member in the seealso section"},
            new string[] {"summary", "A summary of the object"},
            new string[] {"value", "A description of a property"}
        };
        */
        public ICompletionData[] GenerateCompletionData(ICompletionWidget widget, char charTyped)
        {
            /*caretLineNumber = textArea.Caret.Line;
            caretColumn     = textArea.Caret.Column;
            LineSegment caretLine = textArea.Document.GetLineSegment(caretLineNumber);
            string lineText = textArea.Document.GetText(caretLine.Offset, caretLine.Length);
            if (!lineText.Trim().StartsWith("///")) {
                return null;
            }
            */
            ArrayList completionData = new ArrayList ();
            /*foreach (string[] tag in commentTags) {
                completionData.Add(new CommentCompletionData(tag[0], tag[1]));
            }*/
            return (ICompletionData[])completionData.ToArray (typeof (ICompletionData));
        }
开发者ID:slluis,项目名称:monodevelop-prehistoric,代码行数:41,代码来源:CommentCompletionDataProvider.cs


示例16: GenerateCompletionData

        public ICompletionData[] GenerateCompletionData(ICompletionWidget widget, char charTyped)
        {
            completionData = new ArrayList();

            // the parser works with 1 based coordinates
            caretLineNumber      = widget.TriggerLine + 1;
            caretColumn          = widget.TriggerLineOffset + 1;
            //string expression    = TextUtilities.GetExpressionBeforeOffset (textArea, insertIter.Offset);
            ResolveResult results;

            IExpressionFinder expressionFinder = parserContext.GetExpressionFinder(fileName);
            string expression    = expressionFinder == null ? TextUtilities.GetExpressionBeforeOffset(widget, widget.TriggerOffset) : expressionFinder.FindExpression(widget.GetText (0, widget.TriggerOffset), widget.TriggerOffset - 2);
            if (expression == null) return null;
            Console.WriteLine ("Expr: |{0}|", expression);
            //FIXME: This chartyped check is a fucking *HACK*
            if (expression == "is" || expression == "as") {
                string expr = expressionFinder == null ? TextUtilities.GetExpressionBeforeOffset (widget, widget.TriggerOffset - 3) : expressionFinder.FindExpression (widget.GetText (0, widget.TriggerOffset), widget.TriggerOffset - 5);
                AddResolveResults (parserContext.IsAsResolve (expr, caretLineNumber, caretColumn, fileName, widget.GetText (0, widget.TextLength)));
                return (ICompletionData[])completionData.ToArray (typeof (ICompletionData));
            }
            if (ctrlspace && charTyped != '.') {
                AddResolveResults (parserContext.CtrlSpace (caretLineNumber, caretColumn, fileName));
                return (ICompletionData[])completionData.ToArray (typeof (ICompletionData));
            }
            if (charTyped == ' ') {
                if (expression == "using" || expression.EndsWith(" using") || expression.EndsWith("\tusing")|| expression.EndsWith("\nusing")|| expression.EndsWith("\rusing")) {
                    string[] namespaces = parserContext.GetNamespaceList ("", true, true);
                    AddResolveResults(new ResolveResult(namespaces));
                }
            } else {
                //FIXME: I added the null check, #D doesnt need it, why do we?
                if (fileName != null) {
                    results = parserContext.Resolve (expression, caretLineNumber, caretColumn, fileName, widget.GetText (0, widget.TextLength));
                    AddResolveResults(results);
                }
            }
            return (ICompletionData[]) completionData.ToArray (typeof (ICompletionData));
        }
开发者ID:slluis,项目名称:monodevelop-prehistoric,代码行数:38,代码来源:CodeCompletionDataProvider.cs


示例17: PrepareShowWindow

		// ext may be null, but then parameter completion don't work
		internal static void PrepareShowWindow (CompletionTextEditorExtension ext, char firstChar, ICompletionWidget completionWidget, CodeCompletionContext completionContext)
		{
			isShowing = true;

			if (wnd == null) {
				wnd = new CompletionListWindow ();
				wnd.WordCompleted += HandleWndWordCompleted;
			}
			if (ext != null) {
				var widget = ext.Editor.GetNativeWidget<Gtk.Widget> ();
				wnd.TransientFor = widget?.Parent?.Toplevel as Gtk.Window;
			} else {
				var widget = completionWidget as Gtk.Widget;
				if (widget != null) {
					var window = widget.Toplevel as Gtk.Window;
					if (window != null)
						wnd.TransientFor = window;
				}
			}
			wnd.Extension = ext;

			wnd.InitializeListWindow (completionWidget, completionContext);
		}
开发者ID:pabloescribanoloza,项目名称:monodevelop,代码行数:24,代码来源:CompletionWindowManager.cs


示例18: GetCurrentParameterIndex

        public int GetCurrentParameterIndex(ICompletionWidget widget, CodeCompletionContext ctx)
        {
            /*
            int cursor = widget.CurrentCodeCompletionContext.TriggerOffset;
            var loc=new CodeLocation(ctx.TriggerLineOffset,ctx.TriggerLine);

            if (args.IsTemplateInstanceArguments)
            {

            }
            else
            {
                var firstArgLocation = CodeLocation.Empty;

                if (args.ParsedExpression is PostfixExpression_MethodCall)
                    firstArgLocation = (args.ParsedExpression as PostfixExpression_MethodCall).Arguments[0].Location;
                else if (args.ParsedExpression is NewExpression)
                    firstArgLocation = (args.ParsedExpression as NewExpression).Arguments[0].Location;
                else
                    return -1;

                if (loc < firstArgLocation)
                    loc = firstArgLocation;

                var code = doc.Editor.Document.GetTextBetween(firstArgLocation.Line,firstArgLocation.Column, scopeMethod.EndLocation.Line, scopeMethod.EndLocation.Column);

                var tr = new StringReader(code);
                var parser = new DParser(new Lexer(tr));
                parser.Lexer.SetInitialLocation(firstArgLocation);
                parser.Step();

                var updatedArguments = parser.ArgumentList();
                tr.Close();

                var lastArg = updatedArguments[updatedArguments.Count - 1];

                for (int i = 0; i < updatedArguments.Count; i++)
                    if ((loc >= updatedArguments[i].Location && loc <= updatedArguments[i].EndLocation) ||
                        (i==updatedArguments.Count-1 && loc <= updatedArguments[i].EndLocation))
                        return i + 1;
            }
            */
            return args.CurrentlyTypedArgumentIndex;
        }
开发者ID:rikkimax,项目名称:Mono-D,代码行数:44,代码来源:DParameterDataProvider.cs


示例19: ShowWindow

		// ext may be null, but then parameter completion don't work
		internal static bool ShowWindow (CompletionTextEditorExtension ext, char firstChar, ICompletionDataList list, ICompletionWidget completionWidget, CodeCompletionContext completionContext)
		{
			PrepareShowWindow (ext, firstChar, completionWidget, completionContext);
			return ShowWindow (list, completionContext);
		}
开发者ID:swarkcn,项目名称:monodevelop,代码行数:6,代码来源:CompletionWindowManager.cs


示例20: CodeCompletionContextEventArgs

		public CodeCompletionContextEventArgs (ICompletionWidget widget, CodeCompletionContext codeCompletionContext, string completedWord)
		{
			this.Widget = widget;
			this.CodeCompletionContext = codeCompletionContext;
			this.CompletedWord = completedWord;
		}
开发者ID:Kalnor,项目名称:monodevelop,代码行数:6,代码来源:CodeCompletionContextEventArgs.cs



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
C# IComplexStructureReferenceObject类代码示例发布时间:2022-05-24
下一篇:
C# ICompletionSession类代码示例发布时间: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