本文整理汇总了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;未经允许,请勿转载。 |
请发表评论