コード例 #1
0
        public override ParameterDataProvider HandleParameterCompletion(CodeCompletionContext completionContext, char completionChar)
        {
            switch (completionChar)
            {
            case ',':
            case '(':
            case '!':
            case '[':
                break;

            default:
                return(null);
            }

            // Require a parsed D source
            var dom = base.Document.ParsedDocument as ParsedDModule;

            if (dom == null)
            {
                return(null);
            }

            lastTriggerOffset = completionContext.TriggerOffset;
            return(dParamProv = DParameterDataProvider.Create(Document, dom.DDom, completionContext));
        }
コード例 #2
0
        public override ParameterDataProvider HandleParameterCompletion(CodeCompletionContext completionContext, char completionChar)
        {
            switch (completionChar)
            {
            case ',':
            case '(':
            case '!':
            case '[':
                break;

            default:
                return(null);
            }

            // Require a parsed D source
            var ast = Document.GetDAst();

            if (ast == null)
            {
                return(null);
            }

            lastTriggerOffset = completionContext.TriggerOffset;
            return(dParamProv = DParameterDataProvider.Create(Document, ast, completionContext));
        }
コード例 #3
0
        public override IParameterDataProvider HandleParameterCompletion(CodeCompletionContext completionContext, char completionChar)
        {
            if (!(((completionChar == ',') && (!ParameterInformationWindowManager.IsWindowVisible)) || completionChar == '(' || completionChar == '!'))
            {
                return(null);
            }

            // Require a parsed D source
            var dom = base.Document.ParsedDocument as ParsedDModule;

            if (dom == null)
            {
                return(null);
            }

            return(DParameterDataProvider.Create(Document, dom.DDom, completionContext));
        }
コード例 #4
0
        public void Reset()
        {
            memberList.Clear();
            if (!(tag is IBlockNode))
            {
                return;
            }
            var blockNode = (tag as IBlockNode);

            foreach (D_Parser.Dom.INode nd in blockNode.Children)
            {
                if ((nd is IBlockNode) || (nd is DEnumValue))
                {
                    memberList.Add(nd);
                }
            }

            memberList.Sort((x, y) => String.Compare(x.Name + DParameterDataProvider.GetNodeParamString(x), y.Name + DParameterDataProvider.GetNodeParamString(y), StringComparison.OrdinalIgnoreCase));
        }
コード例 #5
0
        public override IParameterDataProvider HandleParameterCompletion(CodeCompletionContext completionContext, char completionChar)
        {
            if (completionChar != ',' &&
                completionChar != '(' &&
                completionChar != '!')
            {
                return(null);
            }

            // Require a parsed D source
            var dom = base.Document.ParsedDocument as ParsedDModule;

            if (dom == null)
            {
                return(null);
            }

            lastTriggerOffset = completionContext.TriggerOffset;
            return(DParameterDataProvider.Create(Document, dom.DDom, completionContext));
        }
コード例 #6
0
        private void UpdatePath(object sender, Mono.TextEditor.DocumentLocationEventArgs e)
        {
            var SyntaxTree = Document.GetDAst();

            if (SyntaxTree == null)
            {
                return;
            }

            // Resolve the hovered piece of code
            var loc          = new CodeLocation(Document.Editor.Caret.Location.Column, Document.Editor.Caret.Location.Line);
            var currentblock = DResolver.SearchBlockAt(SyntaxTree, loc);

            //could be an enum value, which is not IBlockNode
            if (currentblock is DEnum)
            {
                foreach (INode nd in (currentblock as DEnum).Children)
                {
                    if ((nd is DEnumValue) &&
                        ((nd.Location <= loc) && (nd.EndLocation >= loc)))
                    {
                        currentblock = nd as IBlockNode;
                        break;
                    }
                }
            }

            List <PathEntry> result = new List <PathEntry>();
            INode            node   = currentblock;
            PathEntry        entry;

            while ((node != null) && ((node is IBlockNode) || (node is DEnumValue)))
            {
                var icon = DIcons.GetNodeIcon(node as DNode);

                entry          = new PathEntry(icon.IsNull?null: ImageService.GetIcon(icon.Name, IconSize.Menu), node.Name + DParameterDataProvider.GetNodeParamString(node));
                entry.Position = EntryPosition.Left;
                entry.Tag      = node;
                //do not include the module in the path bar
                if ((node.Parent != null) && !((node is DNode) && (node as DNode).IsAnonymous))
                {
                    result.Insert(0, entry);
                }
                node = node.Parent;
            }

            if (!((currentblock is DMethod) || (currentblock is DEnumValue)))
            {
                PathEntry noSelection = new PathEntry(GettextCatalog.GetString("No Selection"))
                {
                    Tag = new NoSelectionCustomNode(currentblock)
                };
                result.Add(noSelection);
            }

            entry = GetRegionEntry(Document.GetDDocument(), Document.Editor.Caret.Location);
            if (entry != null)
            {
                result.Add(entry);
            }

            var prev = CurrentPath;

            CurrentPath = result.ToArray();
            OnPathChanged(new DocumentPathChangedEventArgs(prev));
        }
コード例 #7
0
 public string GetMarkup(int n)
 {
     return(memberList[n].Name + DParameterDataProvider.GetNodeParamString(memberList[n]));
 }