mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-08 10:16:03 +02:00
Content Assist Work: More JUnit tests
This commit is contained in:
parent
42c82af132
commit
7bccc3314d
11 changed files with 231 additions and 156 deletions
|
@ -1,3 +1,6 @@
|
|||
2004-01-29 Hoda Amer
|
||||
Removed CompletionKind.KEYWORD.
|
||||
|
||||
2004-01-29 John Camelon
|
||||
Fixed 50642 - Wrong completion kind when declaring an argument type
|
||||
Updated using declarations for more accurate keywords and closure.
|
||||
|
|
|
@ -58,20 +58,17 @@ public interface IASTCompletionNode {
|
|||
// any place where constructor parameters are expected
|
||||
public static final CompletionKind CONSTRUCTOR_REFERENCE = new CompletionKind( 12 );
|
||||
|
||||
// any place where exclusively a keyword is expected
|
||||
public static final CompletionKind KEYWORD = new CompletionKind( 13 );
|
||||
|
||||
// any place where exclusively a preprocessor directive is expected
|
||||
public static final CompletionKind PREPROCESSOR_DIRECTIVE = new CompletionKind( 14 );
|
||||
public static final CompletionKind PREPROCESSOR_DIRECTIVE = new CompletionKind( 13 );
|
||||
|
||||
// any place where a type or variable name is expected to be introduced
|
||||
public static final CompletionKind USER_SPECIFIED_NAME = new CompletionKind( 15 );
|
||||
public static final CompletionKind USER_SPECIFIED_NAME = new CompletionKind( 14 );
|
||||
|
||||
// any place where function parameters are expected
|
||||
public static final CompletionKind FUNCTION_REFERENCE = new CompletionKind( 16 );
|
||||
public static final CompletionKind FUNCTION_REFERENCE = new CompletionKind( 15 );
|
||||
|
||||
// after a new expression
|
||||
public static final CompletionKind NEW_TYPE_REFERENCE = new CompletionKind( 17 );
|
||||
public static final CompletionKind NEW_TYPE_REFERENCE = new CompletionKind( 16 );
|
||||
|
||||
// error condition -- a place in the grammar where there is nothing to lookup
|
||||
public static final CompletionKind NO_SUCH_KIND = new CompletionKind( 200 );
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2004-01-29 Hoda Amer
|
||||
-Added CompletionTest_SingleName_Parameter test to success tests.
|
||||
-Changed BaseTest to check if the expected values exist in the proposed values
|
||||
instead of checking that the expected values exactly match the first part of the proposed values
|
||||
|
||||
2004-01-29 John Camelon
|
||||
Updated CompletionTest_ArgumentType_Prefix_Bug50642, renamed it to CompletionTest_ArgumentType_Prefix and moved to passed test package.
|
||||
Updated CompletionTest_ArgumentType_Prefix2_Bug50642, renamed it to CompletionTest_ArgumentType_Prefix2 and moved to passed test package.
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
#include "CompletionTestStart.h"
|
||||
|
||||
void aClass::aMethod()
|
||||
{
|
||||
int xLocal = 0;
|
||||
xAClassMethod( x
|
||||
}
|
|
@ -66,6 +66,7 @@ public class AutomatedSuite extends TestSuite {
|
|||
addTest(CompletionTest_NewTypeReference_Prefix.suite());
|
||||
addTest(CompletionTest_ExceptionReference_NoPrefix.suite());
|
||||
addTest(CompletionTest_ExceptionReference_Prefix.suite());
|
||||
addTest(CompletionTest_SingleName_Parameter.suite());
|
||||
|
||||
// Failed Tests
|
||||
addTest(CompletionFailedTest_ScopedReference_NoPrefix_Bug50152.suite());
|
||||
|
|
|
@ -162,9 +162,18 @@ public abstract class CompletionProposalsBaseTest extends TestCase{
|
|||
assertTrue(results.length >= expected.length);
|
||||
|
||||
for (int i = 0; i< expected.length; i++){
|
||||
ICompletionProposal proposal = results[i];
|
||||
String displayString = proposal.getDisplayString();
|
||||
assertEquals(displayString, expected[i]);
|
||||
boolean found = false;
|
||||
for(int j = 0; j< results.length; j++){
|
||||
ICompletionProposal proposal = results[j];
|
||||
String displayString = proposal.getDisplayString();
|
||||
if(expected[i].equals(displayString)){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(found == false){
|
||||
assertTrue(found);
|
||||
}
|
||||
}
|
||||
|
||||
} catch(CModelException e){
|
||||
|
|
|
@ -34,6 +34,7 @@ public class CompletionTest_SingleName_Method_NoPrefix extends CompletionPropos
|
|||
//TODO Hoda - please update this constant with what it is supposed to be
|
||||
private final String[] expectedResults = {
|
||||
"anotherField : int",
|
||||
"anotherMethod() void"
|
||||
};
|
||||
|
||||
public CompletionTest_SingleName_Method_NoPrefix(String name) {
|
||||
|
|
|
@ -31,40 +31,40 @@ public class CompletionTest_SingleName_NoPrefix extends CompletionProposalsBase
|
|||
private final CompletionKind expectedKind = CompletionKind.SINGLE_NAME_REFERENCE;
|
||||
private final String expectedPrefix = "";
|
||||
private final String[] expectedResults = {
|
||||
"x : int",
|
||||
"aVariable : int",
|
||||
"xVariable : int",
|
||||
"aFunction() bool",
|
||||
"anotherFunction() void",
|
||||
"foo(int) void",
|
||||
"xFunction() bool",
|
||||
"xOtherFunction() void",
|
||||
"aClass",
|
||||
"anotherClass",
|
||||
"xOtherClass",
|
||||
"AStruct",
|
||||
"XStruct",
|
||||
"aNamespace",
|
||||
"xNamespace",
|
||||
"anEnumeration",
|
||||
"xEnumeration",
|
||||
"aFirstEnum",
|
||||
"aSecondEnum",
|
||||
"aThirdEnum",
|
||||
"xFirstEnum",
|
||||
"xSecondEnum",
|
||||
"xThirdEnum",
|
||||
"__cplusplus",
|
||||
"__DATE__",
|
||||
"__FILE__",
|
||||
"__LINE__",
|
||||
"__STDC__",
|
||||
"__STDC_HOSTED__",
|
||||
"__STDC_VERSION__",
|
||||
"__TIME__",
|
||||
"AMacro(x)",
|
||||
"DEBUG",
|
||||
"XMacro(x,y)"
|
||||
"x : int"
|
||||
// "aVariable : int",
|
||||
// "xVariable : int",
|
||||
// "aFunction() bool",
|
||||
// "anotherFunction() void",
|
||||
// "foo(int) void",
|
||||
// "xFunction() bool",
|
||||
// "xOtherFunction() void",
|
||||
// "aClass",
|
||||
// "anotherClass",
|
||||
// "xOtherClass",
|
||||
// "AStruct",
|
||||
// "XStruct",
|
||||
// "aNamespace",
|
||||
// "xNamespace",
|
||||
// "anEnumeration",
|
||||
// "xEnumeration",
|
||||
// "aFirstEnum",
|
||||
// "aSecondEnum",
|
||||
// "aThirdEnum",
|
||||
// "xFirstEnum",
|
||||
// "xSecondEnum",
|
||||
// "xThirdEnum",
|
||||
// "__cplusplus",
|
||||
// "__DATE__",
|
||||
// "__FILE__",
|
||||
// "__LINE__",
|
||||
// "__STDC__",
|
||||
// "__STDC_HOSTED__",
|
||||
// "__STDC_VERSION__",
|
||||
// "__TIME__",
|
||||
// "AMacro(x)",
|
||||
// "DEBUG",
|
||||
// "XMacro(x,y)"
|
||||
};
|
||||
|
||||
public CompletionTest_SingleName_NoPrefix(String name) {
|
||||
|
|
|
@ -0,0 +1,129 @@
|
|||
/**********************************************************************
|
||||
* Copyright (c) 2004 Rational Software Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Common Public License v0.5
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/cpl-v05.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Rational Software - Initial API and implementation
|
||||
***********************************************************************/
|
||||
package org.eclipse.cdt.ui.tests.text.contentassist;
|
||||
|
||||
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
import org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind;
|
||||
|
||||
/**
|
||||
* @author hamer
|
||||
*
|
||||
* Testing Single_Name_Reference in parameter passing
|
||||
* Bug#
|
||||
*
|
||||
*/
|
||||
public class CompletionTest_SingleName_Parameter extends CompletionProposalsBaseTest{
|
||||
private final String fileName = "CompletionTestStart36.cpp";
|
||||
private final String fileFullPath ="resources/contentassist/" + fileName;
|
||||
private final String headerFileName = "CompletionTestStart.h";
|
||||
private final String headerFileFullPath ="resources/contentassist/" + headerFileName;
|
||||
private final String expectedScopeName = "ASTMethod";
|
||||
private final String expectedContextName = "null";
|
||||
private final CompletionKind expectedKind = CompletionKind.SINGLE_NAME_REFERENCE;
|
||||
private final String expectedPrefix = "x";
|
||||
private final String[] expectedResults = {
|
||||
"xLocal : int",
|
||||
"xAClassField : float",
|
||||
"xVariable : int",
|
||||
"xAClassMethod(int) void",
|
||||
"xFunction() bool",
|
||||
"xOtherFunction() void",
|
||||
"xNamespace",
|
||||
"xEnumeration",
|
||||
"xFirstEnum",
|
||||
"xSecondEnum",
|
||||
"xThirdEnum",
|
||||
"XStruct",
|
||||
"XMacro(x,y)"
|
||||
};
|
||||
|
||||
public CompletionTest_SingleName_Parameter(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
public static Test suite() {
|
||||
TestSuite suite= new TestSuite(CompletionTest_SingleName_Parameter.class.getName());
|
||||
suite.addTest(new CompletionTest_SingleName_Parameter("testCompletionProposals"));
|
||||
return suite;
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getCompletionPosition()
|
||||
*/
|
||||
protected int getCompletionPosition() {
|
||||
return getBuffer().indexOf(" x ") + 2;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedScope()
|
||||
*/
|
||||
protected String getExpectedScopeClassName() {
|
||||
return expectedScopeName;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedContext()
|
||||
*/
|
||||
protected String getExpectedContextClassName() {
|
||||
return expectedContextName;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedKind()
|
||||
*/
|
||||
protected CompletionKind getExpectedKind() {
|
||||
return expectedKind;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedPrefix()
|
||||
*/
|
||||
protected String getExpectedPrefix() {
|
||||
return expectedPrefix;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedResultsValues()
|
||||
*/
|
||||
protected String[] getExpectedResultsValues() {
|
||||
return expectedResults;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getFileName()
|
||||
*/
|
||||
protected String getFileName() {
|
||||
return fileName;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getFileFullPath()
|
||||
*/
|
||||
protected String getFileFullPath() {
|
||||
return fileFullPath;
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getHeaderFileFullPath()
|
||||
*/
|
||||
protected String getHeaderFileFullPath() {
|
||||
return headerFileFullPath;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getHeaderFileName()
|
||||
*/
|
||||
protected String getHeaderFileName() {
|
||||
return headerFileName;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,3 +1,6 @@
|
|||
2004-01-29 Hoda Amer
|
||||
Tuning for the Completion Engine.
|
||||
|
||||
2004-01-29 Alain Magloire
|
||||
|
||||
PR 50789. Draft work on this.
|
||||
|
|
|
@ -78,25 +78,9 @@ public class CompletionEngine implements RelevanceConstants {
|
|||
int completionStart = 0;
|
||||
int completionLength = 0;
|
||||
IPreferenceStore store = CUIPlugin.getDefault().getPreferenceStore();
|
||||
// keywords types
|
||||
public static final int BASIC_TYPES_KEYWORDS = 0;
|
||||
private static final String basicTypesKeywords[] = {
|
||||
"namespace",
|
||||
"class",
|
||||
"struct",
|
||||
"union",
|
||||
"enum",
|
||||
"bool",
|
||||
"char",
|
||||
"wchar_t",
|
||||
"int",
|
||||
"float",
|
||||
"double",
|
||||
"void",
|
||||
"template",
|
||||
};
|
||||
private static final String exceptionKeyword = "...";
|
||||
private Map macroMap = new HashMap();
|
||||
|
||||
private static final String exceptionKeyword = "...";
|
||||
// scope relevance element counters
|
||||
private int numFields = 0;
|
||||
private int numVariables = 0;
|
||||
|
@ -394,20 +378,6 @@ public class CompletionEngine implements RelevanceConstants {
|
|||
}
|
||||
return ;
|
||||
}
|
||||
|
||||
private List lookupKeywords(String prefix, int lookupType){
|
||||
List result = new ArrayList();
|
||||
switch (lookupType){
|
||||
case BASIC_TYPES_KEYWORDS:
|
||||
for(int i = 0; i <basicTypesKeywords.length; i++){
|
||||
String kw =basicTypesKeywords[i];
|
||||
if(kw.startsWith(prefix))
|
||||
result.add(kw);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private ILookupResult lookup(IASTScope searchNode, String prefix, LookupKind[] kinds, IASTNode context){
|
||||
try {
|
||||
|
@ -464,47 +434,7 @@ public class CompletionEngine implements RelevanceConstants {
|
|||
kinds[1] = IASTNode.LookupKind.METHODS;
|
||||
result = lookup (searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
|
||||
addToCompletions (result);
|
||||
}
|
||||
|
||||
// private void completionOnStatementStart( IASTCompletionNode completionNode )
|
||||
// {
|
||||
// IASTScope searchNode = completionNode.getCompletionScope();
|
||||
//
|
||||
// ILookupResult result = null;
|
||||
// if (completionNode.getCompletionPrefix().length() > 0){
|
||||
// // lookup fields and methods with the right visibility
|
||||
// IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[8];
|
||||
// kinds[0] = IASTNode.LookupKind.FIELDS;
|
||||
// kinds[1] = IASTNode.LookupKind.METHODS;
|
||||
// kinds[2] = IASTNode.LookupKind.VARIABLES;
|
||||
// kinds[3] = IASTNode.LookupKind.STRUCTURES;
|
||||
// kinds[4] = IASTNode.LookupKind.ENUMERATIONS;
|
||||
// kinds[5] = IASTNode.LookupKind.NAMESPACES;
|
||||
// kinds[6] = IASTNode.LookupKind.FUNCTIONS;
|
||||
// kinds[7] = IASTNode.LookupKind.LOCAL_VARIABLES;
|
||||
//
|
||||
// result = lookup (searchNode, completionNode.getCompletionPrefix(), kinds, null);
|
||||
// addToCompletions (result);
|
||||
//
|
||||
// List macros = lookupMacros(completionNode.getCompletionPrefix());
|
||||
// addMacrosToCompletions(macros.iterator());
|
||||
// }
|
||||
// else // prefix is empty
|
||||
// {
|
||||
// // instead of only fields and methods
|
||||
// IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
|
||||
// kinds[0] = IASTNode.LookupKind.THIS;
|
||||
// result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
|
||||
// addToCompletions(result);
|
||||
//
|
||||
// kinds = new IASTNode.LookupKind[1];
|
||||
// kinds[0] = IASTNode.LookupKind.LOCAL_VARIABLES;
|
||||
// result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
|
||||
// addToCompletions(result);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
private void completionOnScopedReference(IASTCompletionNode completionNode){
|
||||
// 1. Get the search scope node
|
||||
// the search node is the name before the qualification
|
||||
|
@ -567,26 +497,32 @@ public class CompletionEngine implements RelevanceConstants {
|
|||
// the search node is the code scope inwhich completion is requested
|
||||
IASTScope searchNode = completionNode.getCompletionScope();
|
||||
// here we have to look for any names that could be referenced within this scope
|
||||
// 1. lookup local variables, global variables, functions, methods, structures, enums, macros, and namespaces
|
||||
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[9];
|
||||
kinds[0] = IASTNode.LookupKind.LOCAL_VARIABLES;
|
||||
kinds[1] = IASTNode.LookupKind.FIELDS;
|
||||
kinds[2] = IASTNode.LookupKind.VARIABLES;
|
||||
kinds[3] = IASTNode.LookupKind.METHODS;
|
||||
kinds[4] = IASTNode.LookupKind.FUNCTIONS;
|
||||
kinds[5] = IASTNode.LookupKind.NAMESPACES;
|
||||
kinds[6] = IASTNode.LookupKind.ENUMERATORS;
|
||||
kinds[7] = IASTNode.LookupKind.STRUCTURES;
|
||||
kinds[8] = IASTNode.LookupKind.ENUMERATIONS;
|
||||
String prefix = completionNode.getCompletionPrefix();
|
||||
if(prefix.equals("("))
|
||||
prefix = "";
|
||||
ILookupResult result = lookup(searchNode, prefix, kinds, null);
|
||||
addToCompletions(result);
|
||||
|
||||
List macros = lookupMacros(completionNode.getCompletionPrefix());
|
||||
addMacrosToCompletions(macros.iterator());
|
||||
|
||||
// 1. lookup all
|
||||
ILookupResult result = null;
|
||||
if (completionNode.getCompletionPrefix().length() > 0){
|
||||
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
|
||||
kinds[0] = IASTNode.LookupKind.ALL;
|
||||
String prefix = completionNode.getCompletionPrefix();
|
||||
if(prefix.equals("("))
|
||||
prefix = "";
|
||||
result = lookup(searchNode, prefix, kinds, null);
|
||||
addToCompletions(result);
|
||||
|
||||
List macros = lookupMacros(completionNode.getCompletionPrefix());
|
||||
addMacrosToCompletions(macros.iterator());
|
||||
}
|
||||
else // prefix is empty
|
||||
{
|
||||
IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1];
|
||||
kinds[0] = IASTNode.LookupKind.THIS;
|
||||
result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
|
||||
addToCompletions(result);
|
||||
|
||||
kinds = new IASTNode.LookupKind[1];
|
||||
kinds[0] = IASTNode.LookupKind.LOCAL_VARIABLES;
|
||||
result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext());
|
||||
addToCompletions(result);
|
||||
}
|
||||
}
|
||||
|
||||
private void completionOnClassReference(IASTCompletionNode completionNode){
|
||||
|
@ -658,12 +594,6 @@ public class CompletionEngine implements RelevanceConstants {
|
|||
ILookupResult result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, null);
|
||||
addToCompletions(result);
|
||||
}
|
||||
private void completionOnKeyword(IASTCompletionNode completionNode){
|
||||
// lookup every type of keywords
|
||||
// 1. basic types keword list
|
||||
List result = lookupKeywords(completionNode.getCompletionPrefix(), BASIC_TYPES_KEYWORDS);
|
||||
addKeywordsToCompletions(result.iterator());
|
||||
}
|
||||
|
||||
public IASTCompletionNode complete(IWorkingCopy sourceUnit, int completionOffset) {
|
||||
long startTime = System.currentTimeMillis();
|
||||
|
@ -703,11 +633,6 @@ public class CompletionEngine implements RelevanceConstants {
|
|||
// completionOnMemberReference
|
||||
completionOnScopedReference(completionNode);
|
||||
}
|
||||
// else if(kind == CompletionKind.STATEMENT_START )
|
||||
// {
|
||||
// // CompletionOnStatementStart
|
||||
// completionOnStatementStart(completionNode);
|
||||
// }
|
||||
else if(kind == CompletionKind.FIELD_TYPE){
|
||||
// CompletionOnFieldType
|
||||
completionOnFieldType(completionNode);
|
||||
|
@ -756,11 +681,8 @@ public class CompletionEngine implements RelevanceConstants {
|
|||
// completionOnConstructorReference
|
||||
completionOnConstructorReference(completionNode);
|
||||
}
|
||||
else if(kind == CompletionKind.KEYWORD){
|
||||
// CompletionOnKeyword
|
||||
completionOnKeyword(completionNode);
|
||||
}
|
||||
|
||||
// add keywords in all cases except for member and scoped reference cases.
|
||||
if((kind != CompletionKind.MEMBER_REFERENCE) &&(kind != CompletionKind.SCOPED_REFERENCE)){
|
||||
addKeywordsToCompletions( completionNode.getKeywords());
|
||||
}
|
||||
|
@ -798,14 +720,12 @@ public class CompletionEngine implements RelevanceConstants {
|
|||
kindStr = "MACRO_REFERENCE";
|
||||
else if(kind == IASTCompletionNode.CompletionKind.CONSTRUCTOR_REFERENCE)
|
||||
kindStr = "CONSTRUCTOR_REFERENCE";
|
||||
else if(kind == IASTCompletionNode.CompletionKind.KEYWORD)
|
||||
kindStr = "KEYWORD";
|
||||
else if(kind == IASTCompletionNode.CompletionKind.NEW_TYPE_REFERENCE)
|
||||
kindStr = "NEW_TYPE_REFERENCE";
|
||||
else if(kind == IASTCompletionNode.CompletionKind.PREPROCESSOR_DIRECTIVE)
|
||||
kindStr = "PREPROCESSOR_DIRECTIVE";
|
||||
else if(kind == IASTCompletionNode.CompletionKind.USER_SPECIFIED_NAME)
|
||||
kindStr = "USER_SPECIFIED_NAME";
|
||||
// else if(kind == IASTCompletionNode.CompletionKind.STATEMENT_START)
|
||||
// kindStr = "STATEMENT_START";
|
||||
else if(kind == IASTCompletionNode.CompletionKind.NO_SUCH_KIND)
|
||||
kindStr = "NO_SUCH_KIND";
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue