X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fcompletions%2FPrefixUtil.java;fp=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fcompletions%2FPrefixUtil.java;h=a4ce9adb7ae68d730a57f5c7114a17109fc32a62;hb=3216affb4ed0e73a5601be223638f4f1a41fb26a;hp=0000000000000000000000000000000000000000;hpb=96d8636ef6a7af10b65ad0878bebeee51891790d;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/completions/PrefixUtil.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/completions/PrefixUtil.java new file mode 100644 index 000000000..a4ce9adb7 --- /dev/null +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/completions/PrefixUtil.java @@ -0,0 +1,37 @@ +package org.simantics.scl.compiler.completions; + +public class PrefixUtil { + public static String findPrefix(String sourceText, int end) { + int position; + for(position=end-1;position >= 0 && isPrefixChar(sourceText.charAt(position));--position); + ++position; + while(position < end && !isPrefixStart(sourceText.charAt(position))) + ++position; + return sourceText.substring(position, end); + } + + private static boolean isPrefixStart(char c) { + return Character.isJavaIdentifierStart(c); + } + + private static boolean isPrefixChar(char c) { + return Character.isJavaIdentifierPart(c) || c=='.'; + } + + public static String[] splitPrefix(String prefix) { + int partCount = 1; + for(int i=0;i