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

Java CodeCompletionContext类代码示例

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

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



CodeCompletionContext类属于org.netbeans.modules.csl.api包,在下文中一共展示了CodeCompletionContext类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: FanCompletionContext

import org.netbeans.modules.csl.api.CodeCompletionContext; //导入依赖的package包/类
public FanCompletionContext(CodeCompletionContext context) {
    this.context = context;
    result = (FanParserTask) context.getParserResult();

    offset = context.getCaretOffset();
    String prefix = context.getPrefix();
    if (prefix == null) {
        prefix = "";
    }
    queryType = context.getQueryType();// what's this ?
    caseSensitive = context.isCaseSensitive();
    isPrefixMatch = context.isPrefixMatch(); // ?
    doc = result.getSnapshot().getSource().getDocument(true);
    tokenStream = FanLexAstUtils.getFanTokenSequence(doc);

    AstNode rootNode = result.getAstTree();
    AstNode curNode = FanLexAstUtils.findASTNodeAt(rootNode, offset);

    completionType = determineCompletionType(curNode);
    FanUtilities.GENERIC_LOGGER.debug("Compl. type:" + completionType.toString());
}
 
开发者ID:tcolar,项目名称:fantomidemodule,代码行数:22,代码来源:FanCompletionContext.java


示例2: complete

import org.netbeans.modules.csl.api.CodeCompletionContext; //导入依赖的package包/类
@Override
public CodeCompletionResult complete(CodeCompletionContext context) {
    switch (context.getQueryType()) {
        case COMPLETION:
        case ALL_COMPLETION:
        case DOCUMENTATION:
            return completeImpl(context);
        default:
            return null;
    }
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:12,代码来源:DockerfileCompletion.java


示例3: addCodeCompletionItems

import org.netbeans.modules.csl.api.CodeCompletionContext; //导入依赖的package包/类
private void addCodeCompletionItems(ParserResult controller, CodeCompletionHandler completer, int offset, String prefix) {
    QueryType qtype = queryType == 9 ? QueryType.ALL_COMPLETION : QueryType.COMPLETION;
    CodeCompletionContext context = new CodeCompletionContextImpl(offset, controller, prefix, true, qtype);
    CodeCompletionResult result = completer.complete(context);

    if (result == null) {
        Logger.getLogger(this.getClass().getName()).log(Level.WARNING, completer.getClass().getName() + " should return CodeCompletionResult.NONE rather than null");
        result = CodeCompletionResult.NONE;
    }

    if (result != CodeCompletionResult.NONE) {
        if (result.isTruncated()) {
            isTruncated = true;
        }
        if (!result.isFilterable()) {
            isFilterable = false;
        }

        for (CompletionProposal proposal : result.getItems()) {
            GsfCompletionItem item = GsfCompletionItem.createItem(proposal, result, controller);

            if (item != null) {
                results.add(item);
            }
        }

        
    }
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:30,代码来源:GsfCompletionProvider.java


示例4: proposeCalls

import org.netbeans.modules.csl.api.CodeCompletionContext; //导入依赖的package包/类
/**
 * Propose options for a DOT_CALL ex:
 * SomeClass._
 * SomeClass.get_
 * object.method()._
 * Window{title="a"}._
 * @param proposals
 * @param context
 */
private void proposeCalls(ArrayList<CompletionProposal> proposals, CodeCompletionContext context, AstNode node)
{
    AstNode callNode = FanLexAstUtils.getCallNodeExpr(node);
    // protect from NPE
    if (callNode == null)
    {
        return;
    }

    FanResolvedType type = FanResolvedType.resolveCallLeftHandSide(node);

    String txt = callNode.getNodeText(true);
    System.out.println("Call text: " + txt + " type: " + type);
    int offset = context.getCaretOffset();
    String prefix = txt;
    //TODO: could be ?., -> or ?->
    int idx=0;
    // TODO: kinda ugly -> look for AST_OP instead ??
    if(prefix.startsWith("?->"))
        idx = 3;
    else if(prefix.startsWith("->"))
        idx = 2;
    else if(prefix.startsWith("?."))
        idx = 2;
    else if(prefix.startsWith("."))
        idx = 1;
    if (idx != 0)
    {
        prefix = prefix.substring(idx);
    }
    if (type != null && type.isResolved())
    {
        proposeSlots(type, proposals, offset, prefix, node);
    }
}
 
开发者ID:tcolar,项目名称:fantomidemodule,代码行数:45,代码来源:FanCompletionHandler.java


示例5: proposeVars

import org.netbeans.modules.csl.api.CodeCompletionContext; //导入依赖的package包/类
private void proposeVars(ArrayList<CompletionProposal> proposals, CodeCompletionContext context, String prefix, AstNode node)
{
    for (FanAstScopeVarBase var : node.getAllScopeVars().values())
    {
        if (var.getName().startsWith(prefix))
        {
            CompletionProposal prop = null;
            if (var instanceof FanTypeScopeVar)
            {
                prop = new FanTypeProposal(var.getType().getDbType(), context.getCaretOffset() - prefix.length(), null);
            } else if (var instanceof FanMethodScopeVar || var instanceof FanFieldScopeVar)
            {
                FanFieldScopeVar fVar = ((FanFieldScopeVar) var);
                FanResolvedType slotBaseType = fVar.getType().resolveSlotBaseType(fVar.getName(), null);
                FanSlot slot = FanSlot.findByTypeAndName(slotBaseType.getQualifiedType(), fVar.getName());
                if (slot != null)
                {
                    prop = new FanSlotProposal(slot, context.getCaretOffset() - prefix.length(), node, slotBaseType);
                }
            }
            if (prop == null)
            {
                prop = new FanVarProposal(var, context.getCaretOffset() - prefix.length());
            }
            proposals.add(prop);
        }
    }
}
 
开发者ID:tcolar,项目名称:fantomidemodule,代码行数:29,代码来源:FanCompletionHandler.java


示例6: completeImpl

import org.netbeans.modules.csl.api.CodeCompletionContext; //导入依赖的package包/类
private CodeCompletionResult completeImpl(@NonNull final CodeCompletionContext ctx) {
    final BaseDocument doc = (BaseDocument) ctx.getParserResult().getSnapshot().getSource().getDocument(false);
    if (doc == null) {
        return CodeCompletionResult.NONE;
    }
    doc.readLock();
    try {
        final int offset = ctx.getCaretOffset();
        String prefix = ctx.getPrefix();
        final int lineStart = LineDocumentUtils.getLineStart(doc, offset);
        int anchor = offset - (prefix == null ? 0 : prefix.length());
        if (anchor == lineStart) {
            //commands code completion
            return commands(prefix, anchor, false);
        }
        final TokenSequence<DockerfileTokenId> seq = TokenHierarchy.get(doc).tokenSequence(DockerfileTokenId.language());
        if (seq == null) {
            return CodeCompletionResult.NONE;
        }
        seq.move(Math.max(0,offset-1));
        if (!seq.moveNext() && !seq.movePrevious()) {
            return CodeCompletionResult.NONE;
        }
        final Token<DockerfileTokenId> current = seq.token();
        if (current != null && current.id() != DockerfileTokenId.WHITESPACE) {
            anchor = seq.offset();
            prefix = current.text().toString().substring(0,offset-anchor);
            seq.movePrevious();
        } else {
            anchor = offset;
            prefix = "";    //NOI18N
        }
        Token<DockerfileTokenId> prev;
        while ((prev = seq.token()) != null && prev.id() == DockerfileTokenId.WHITESPACE) {
            if (!seq.movePrevious()) {
                break;
            }
        }
        if (prev != null  &&
                prev.id() == DockerfileTokenId.ONBUILD &&
                LineDocumentUtils.getLineStart(doc,seq.offset()) ==  LineDocumentUtils.getLineStart(doc,anchor)) {
            //Commands after onbuild
            return commands(prefix, anchor, true);
        }
        return CodeCompletionResult.NONE;
    } finally {
        doc.readUnlock();
    }
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:50,代码来源:DockerfileCompletion.java


示例7: resolveDocumentation

import org.netbeans.modules.csl.api.CodeCompletionContext; //导入依赖的package包/类
private void resolveDocumentation(ParserResult controller) throws IOException {
    if (element != null) {
        documentation = GsfCompletionDoc.create(controller, element, new Callable<Boolean>(){
            @Override
            public Boolean call() throws Exception {
                return isTaskCancelled();
            }
        });
    } else {
        Env env = getCompletionEnvironment(controller, false);
        int offset = env.getOffset();
        String prefix = env.getPrefix();
        results = new ArrayList<CompletionItem>();
        isTruncated = false;
        isFilterable = true;
        anchorOffset = env.getOffset() - ((prefix != null) ? prefix.length() : 0);

        CodeCompletionHandler completer = env.getCompletable();

        if (completer != null) {
            CodeCompletionContext context = new CodeCompletionContextImpl(offset, controller, prefix, false, QueryType.DOCUMENTATION);
            CodeCompletionResult result = completer.complete(context);
            if (result == null) {
                Logger.getLogger(this.getClass().getName()).log(Level.WARNING, completer.getClass().getName() + " should return CodeCompletionResult.NONE rather than null");
                result = CodeCompletionResult.NONE;
            }

            if (result != CodeCompletionResult.NONE) {
                for (CompletionProposal proposal : result.getItems()) {
                    ElementHandle el = proposal.getElement();
                    if (el != null) {
                        documentation = GsfCompletionDoc.create(controller, el, new Callable<Boolean>(){
                            @Override
                            public Boolean call() throws Exception {
                                return isTaskCancelled();
                            }
                        });
                        // TODO - find some way to show the multiple overloaded methods?
                        if (documentation.getText() != null && documentation.getText().length() > 0) {
                            // Make sure we at least pick an alternative that has documentation
                            break;
                        }
                    }
                }
            }
        }
    }
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:49,代码来源:GsfCompletionProvider.java


示例8: complete

import org.netbeans.modules.csl.api.CodeCompletionContext; //导入依赖的package包/类
@Override
public CodeCompletionResult complete(CodeCompletionContext ccc) {
    return CodeCompletionResult.NONE;
}
 
开发者ID:guru-digital,项目名称:sstemplate-netbeans,代码行数:5,代码来源:SSTemplateCompletionHandler.java


示例9: complete

import org.netbeans.modules.csl.api.CodeCompletionContext; //导入依赖的package包/类
@Override
    public CodeCompletionResult complete(CodeCompletionContext completionContext) {
        ParserResult parserResult = completionContext.getParserResult();
        String prefix = completionContext.getPrefix();
        // Documentation says that @NonNull is return from getPrefix() but it's not true
        // Invoking "this.^" makes the return value null
        if (prefix == null) {
            prefix = "";
        }
        if (completionContext.getQueryType() == QueryType.NONE) {
            return CodeCompletionResult.NONE;
        }
        int lexOffset = completionContext.getCaretOffset();
//        int astOffset = ASTUtils.getAstOffset(parserResult, lexOffset);
        int anchor = lexOffset - prefix.length();

        final Document document = parserResult.getSnapshot().getSource().getDocument(false);
        if (document == null) {
            return CodeCompletionResult.NONE;
        }
        final BaseDocument doc = (BaseDocument) document;
        doc.readLock(); // Read-lock due to Token hierarchy use
        try {
            ProposalsCollector collector = new ProposalsCollector();
            CompletionContext context = new CompletionContext(parserResult, prefix, anchor, lexOffset, doc);
            if (noNeedToPropose(doc, lexOffset)) {
                return CodeCompletionResult.NONE;
            }
            if (context.isAnchorInFunction()) {
                String lastWord = getLastWord(prefix);
                if (startingTextMatchesWith(lastWord, GoloLanguageHierarchy.MULTILINE_DELIMITER)) {
                    CompletionProposal multiline = new CompletionItem.MultiStringItem(context.getAnchor() + prefix.lastIndexOf(lastWord));
                    return new DefaultCompletionResult(Arrays.asList(multiline), false);
                }
                collector.completeKeywords(context);
                collector.completeMethods(context);
                collector.completeMethodsFromImports(context);
                collector.completeParameters(context);
                collector.completeVariable(context);
            } else {
                if (startingTextMatchesWith(prefix, GoloLanguageHierarchy.GOLODOC_DELIMITER)) {
                    collector.completeDocumentation(context);
                } else {
                    if (isInImportDeclaration(GoloLexerUtils.getPositionedSequence(doc, lexOffset))) {
                        collector.completeImportModule(context);
                    } else if (isInAugmentDeclaration(GoloLexerUtils.getPositionedSequence(doc, lexOffset))) {
                        collector.completeAugmentation(context);
                    } else {
                        collector.completeKeywords(context);
                    }

                }
                
            }
            List<CompletionProposal> listCompletionProposal = collector.getProposals();
            return new DefaultCompletionResult(listCompletionProposal, false);
        } finally {
            doc.readUnlock();
        }
    }
 
开发者ID:golo-lang,项目名称:golo-netbeans,代码行数:61,代码来源:CompletionHandler.java


示例10: getContext

import org.netbeans.modules.csl.api.CodeCompletionContext; //导入依赖的package包/类
public CodeCompletionContext getContext() {
    return context;
}
 
开发者ID:tcolar,项目名称:fantomidemodule,代码行数:4,代码来源:FanCompletionContext.java


示例11: proposeUsing

import org.netbeans.modules.csl.api.CodeCompletionContext; //导入依赖的package包/类
@SuppressWarnings("unchecked")
private void proposeUsing(ArrayList<CompletionProposal> proposals, CodeCompletionContext context, AstNode node)
{
    if (node.getKind() == AstKind.AST_USING_AS)
    {
        return; // no completion after "as"
    }
    FanParserTask result = (FanParserTask) context.getParserResult();
    //Document doc = result.getSnapshot().getSource().getDocument(true);
    AstNode curNode = FanLexAstUtils.findParentNode(node, AstKind.AST_USING);
    int anchor = context.getCaretOffset();
    if (curNode == null)
    {
        curNode = FanLexAstUtils.findParentNode(node, AstKind.AST_INC_USING);
    }
    if (curNode == null)
    {
        return;
    }
    AstNode idNode = FanLexAstUtils.getFirstChild(curNode, new NodeKindPredicate(AstKind.AST_ID));
    AstNode ffi = FanLexAstUtils.getFirstChildRecursive(curNode, new NodeKindPredicate(AstKind.AST_USING_FFI));
    //AstNode as = FanLexAstUtils.getFirstChildRecursive(curNode, new NodeKindPredicate(AstKind.AST_USING_AS));
    String id = "";
    if (idNode != null)
    {
        id = idNode.getNodeText(true);
    }

    FanUtilities.GENERIC_LOGGER.debug("Using ID: " + id);
    String pod = null;
    if (id.indexOf("::") != -1)
    {
        pod = id.substring(0, id.indexOf("::"));
        id = id.substring(id.indexOf("::") + 2);
    }

    if (ffi != null)
    {
        String ffiText = ffi.getNodeText(true);
        if (ffiText.equals("java"))
        {
            if (pod == null)
            {
                proposeJavaPacks(proposals, anchor, id);
            } else
            {
                proposeJavaTypes(proposals, anchor, pod, id);
            }
        }
    } else
    {
        if (pod == null)
        {
            proposePods(proposals, anchor, id);
        } else
        {
            proposeTypes(pod, proposals, anchor, id);
        }
    }

}
 
开发者ID:tcolar,项目名称:fantomidemodule,代码行数:62,代码来源:FanCompletionHandler.java



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
Java HelpScreenException类代码示例发布时间:2022-05-22
下一篇:
Java PersistentStoreCollectionSession类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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