changeset: 155541:fc93e47eb6f2 user: ksc91u@cs.ccu.edu.tw date: Sun Dec 13 00:29:04 2009 +0800 files: cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/CsmCompletionProvider.java cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/ext/CompletionSupport.java cnd.completion/src/org/netbeans/modules/cnd/completion/csm/CompletionResolverImpl.java editor.completion/src/org/netbeans/modules/editor/completion/CompletionImpl.java description: Patch to show code completion after typing two characters. diff -r 7c8a33d8680f -r fc93e47eb6f2 cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/CsmCompletionProvider.java --- a/cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/CsmCompletionProvider.java Thu Dec 10 03:30:43 2009 +0100 +++ b/cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/CsmCompletionProvider.java Sun Dec 13 00:29:04 2009 +0800 @@ -76,7 +76,7 @@ private static final boolean TRACE = false; public int getAutoQueryTypes(JTextComponent component, String typedText) { - CompletionSupport sup = CompletionSupport.get(component); + CompletionSupport sup = CompletionSupport.get(component); if (sup == null) { return 0; } diff -r 7c8a33d8680f -r fc93e47eb6f2 cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/ext/CompletionSupport.java --- a/cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/ext/CompletionSupport.java Thu Dec 10 03:30:43 2009 +0100 +++ b/cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/ext/CompletionSupport.java Sun Dec 13 00:29:04 2009 +0800 @@ -419,8 +419,10 @@ switch (ts.token().id()) { case LINE_COMMENT: case DOXYGEN_LINE_COMMENT: + return false; case CHAR_LITERAL: case STRING_LITERAL: + return true; case PREPROCESSOR_USER_INCLUDE: case PREPROCESSOR_SYS_INCLUDE: case PREPROCESSOR_DEFINED: @@ -443,6 +445,11 @@ public static boolean needShowCompletionOnText(JTextComponent target, String typedText) throws BadLocationException { char typedChar = typedText.charAt(typedText.length() - 1); + if (typedChar == ')' || typedChar == ';' || typedChar == '}'){ + return false; + }else{ + return true; + }/* if (typedChar == ' ' || typedChar == '>' || typedChar == ':' || typedChar == '.' || typedChar == '*') { int dotPos = target.getCaret().getDot(); Document doc = target.getDocument(); @@ -468,7 +475,7 @@ return true; } } - return false; + return false;*/ } private static boolean equalTypes(CsmType t, CsmType mpt) { diff -r 7c8a33d8680f -r fc93e47eb6f2 cnd.completion/src/org/netbeans/modules/cnd/completion/csm/CompletionResolverImpl.java --- a/cnd.completion/src/org/netbeans/modules/cnd/completion/csm/CompletionResolverImpl.java Thu Dec 10 03:30:43 2009 +0100 +++ b/cnd.completion/src/org/netbeans/modules/cnd/completion/csm/CompletionResolverImpl.java Sun Dec 13 00:29:04 2009 +0800 @@ -185,7 +185,7 @@ public boolean resolve(int docOffset, String strPrefix, boolean match) { int offset = contextOffset == NOT_INITIALIZED ? docOffset : contextOffset; - if (file == null) { + if (file == null) { return false; } context = CsmOffsetResolver.findContext(file, offset, fileReferncesContext); @@ -354,6 +354,7 @@ } private boolean resolveContext(CsmProject prj, ResultImpl resImpl, CsmContext context, int offset, String strPrefix, boolean match) { + this.refresh(); CsmFunction fun = CsmContextUtilities.getFunction(context, true); if (needLocalVars(context, offset)) { if (resImpl.fileLocalEnumerators == null) { @@ -470,6 +471,10 @@ resImpl.classesEnumsTypedefs = new ArrayList(); } Collection classesEnums = getClassesEnums(context, prj, strPrefix, match, offset, !needClasses(context, offset)); + if (classesEnums==null||classesEnums.size()==0){ + this.refresh(); + classesEnums = getClassesEnums(context, prj, strPrefix, match, offset, !needClasses(context, offset)); + } Collection visibleClassesEnums = new ArrayList(); if (isEnoughAfterFilterVisibileObjects(strPrefix, match, classesEnums, visibleClassesEnums)) { resImpl.classesEnumsTypedefs.addAll(visibleClassesEnums); @@ -905,6 +910,16 @@ Collection usedDecls = getUsedDeclarations(this.file, offset, strPrefix, match, kinds); out.addAll(usedDecls); } + /* + try{ + System.err.println("Size "+out.size()); + System.err.println("Size "+out.size()); + System.err.println("Size "+out.size()); + System.err.println("Size "+out.size()); + int ii=10/(out.size()-out.size()); + }catch(Exception e){ + e.printStackTrace(); + }*/ return out; } diff -r 7c8a33d8680f -r fc93e47eb6f2 editor.completion/src/org/netbeans/modules/editor/completion/CompletionImpl.java --- a/editor.completion/src/org/netbeans/modules/editor/completion/CompletionImpl.java Thu Dec 10 03:30:43 2009 +0100 +++ b/editor.completion/src/org/netbeans/modules/editor/completion/CompletionImpl.java Sun Dec 13 00:29:04 2009 +0800 @@ -571,7 +571,8 @@ if (layout.isCompletionVisible()) { CompletionItem item = layout.getSelectedCompletionItem(); if (item != null) { - if (compEditable && !guardedPos) { + //if (compEditable && !guardedPos) { + if (compEditable){ LogRecord r = new LogRecord(Level.FINE, "COMPL_KEY_SELECT"); // NOI18N r.setParameters(new Object[] {e.getKeyChar(), layout.getSelectedIndex(), item.getClass().getSimpleName()}); item.processKeyEvent(e); changeset: 155542:20bac02803b1 user: ksc91u@cs.ccu.edu.tw date: Sun Dec 13 00:42:02 2009 +0800 files: cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/CsmCompletionProvider.java cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/ext/CompletionSupport.java cnd.completion/src/org/netbeans/modules/cnd/completion/csm/CompletionResolverImpl.java editor.completion/src/org/netbeans/modules/editor/completion/CompletionImpl.java description: Clean up testing codes. diff -r fc93e47eb6f2 -r 20bac02803b1 cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/CsmCompletionProvider.java --- a/cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/CsmCompletionProvider.java Sun Dec 13 00:29:04 2009 +0800 +++ b/cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/CsmCompletionProvider.java Sun Dec 13 00:42:02 2009 +0800 @@ -76,7 +76,7 @@ private static final boolean TRACE = false; public int getAutoQueryTypes(JTextComponent component, String typedText) { - CompletionSupport sup = CompletionSupport.get(component); + CompletionSupport sup = CompletionSupport.get(component); if (sup == null) { return 0; } diff -r fc93e47eb6f2 -r 20bac02803b1 cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/ext/CompletionSupport.java --- a/cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/ext/CompletionSupport.java Sun Dec 13 00:29:04 2009 +0800 +++ b/cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/ext/CompletionSupport.java Sun Dec 13 00:42:02 2009 +0800 @@ -419,10 +419,8 @@ switch (ts.token().id()) { case LINE_COMMENT: case DOXYGEN_LINE_COMMENT: - return false; case CHAR_LITERAL: case STRING_LITERAL: - return true; case PREPROCESSOR_USER_INCLUDE: case PREPROCESSOR_SYS_INCLUDE: case PREPROCESSOR_DEFINED: diff -r fc93e47eb6f2 -r 20bac02803b1 cnd.completion/src/org/netbeans/modules/cnd/completion/csm/CompletionResolverImpl.java --- a/cnd.completion/src/org/netbeans/modules/cnd/completion/csm/CompletionResolverImpl.java Sun Dec 13 00:29:04 2009 +0800 +++ b/cnd.completion/src/org/netbeans/modules/cnd/completion/csm/CompletionResolverImpl.java Sun Dec 13 00:42:02 2009 +0800 @@ -185,7 +185,7 @@ public boolean resolve(int docOffset, String strPrefix, boolean match) { int offset = contextOffset == NOT_INITIALIZED ? docOffset : contextOffset; - if (file == null) { + if (file == null) { return false; } context = CsmOffsetResolver.findContext(file, offset, fileReferncesContext); @@ -354,7 +354,6 @@ } private boolean resolveContext(CsmProject prj, ResultImpl resImpl, CsmContext context, int offset, String strPrefix, boolean match) { - this.refresh(); CsmFunction fun = CsmContextUtilities.getFunction(context, true); if (needLocalVars(context, offset)) { if (resImpl.fileLocalEnumerators == null) { @@ -471,10 +470,6 @@ resImpl.classesEnumsTypedefs = new ArrayList(); } Collection classesEnums = getClassesEnums(context, prj, strPrefix, match, offset, !needClasses(context, offset)); - if (classesEnums==null||classesEnums.size()==0){ - this.refresh(); - classesEnums = getClassesEnums(context, prj, strPrefix, match, offset, !needClasses(context, offset)); - } Collection visibleClassesEnums = new ArrayList(); if (isEnoughAfterFilterVisibileObjects(strPrefix, match, classesEnums, visibleClassesEnums)) { resImpl.classesEnumsTypedefs.addAll(visibleClassesEnums); @@ -910,16 +905,6 @@ Collection usedDecls = getUsedDeclarations(this.file, offset, strPrefix, match, kinds); out.addAll(usedDecls); } - /* - try{ - System.err.println("Size "+out.size()); - System.err.println("Size "+out.size()); - System.err.println("Size "+out.size()); - System.err.println("Size "+out.size()); - int ii=10/(out.size()-out.size()); - }catch(Exception e){ - e.printStackTrace(); - }*/ return out; } diff -r fc93e47eb6f2 -r 20bac02803b1 editor.completion/src/org/netbeans/modules/editor/completion/CompletionImpl.java --- a/editor.completion/src/org/netbeans/modules/editor/completion/CompletionImpl.java Sun Dec 13 00:29:04 2009 +0800 +++ b/editor.completion/src/org/netbeans/modules/editor/completion/CompletionImpl.java Sun Dec 13 00:42:02 2009 +0800 @@ -571,8 +571,7 @@ if (layout.isCompletionVisible()) { CompletionItem item = layout.getSelectedCompletionItem(); if (item != null) { - //if (compEditable && !guardedPos) { - if (compEditable){ + if (compEditable && !guardedPos) { LogRecord r = new LogRecord(Level.FINE, "COMPL_KEY_SELECT"); // NOI18N r.setParameters(new Object[] {e.getKeyChar(), layout.getSelectedIndex(), item.getClass().getSimpleName()}); item.processKeyEvent(e);