Java Code Examples for com.intellij.codeInsight.completion.CompletionType

The following examples show how to use com.intellij.codeInsight.completion.CompletionType. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
private void assertCompletion3rdInvocationContains(String configureByText, String... lookupStrings) {
    myFixture.configureByText(YAMLFileType.YML, configureByText);
    myFixture.complete(CompletionType.BASIC, 3);

    if(lookupStrings.length == 0) {
        fail("No lookup element given");
    }

    List<String> lookupElements = myFixture.getLookupElementStrings();
    if(lookupElements == null || lookupElements.size() == 0) {
        fail(String.format("failed that empty completion contains %s", Arrays.toString(lookupStrings)));
    }

    for (String s : lookupStrings) {
        if(!lookupElements.contains(s)) {
            fail(String.format("failed that completion contains %s in %s", s, lookupElements.toString()));
        }
    }
}
 
Example 2
Source Project: BashSupport   Source File: BashPerformanceTest.java    License: Apache License 2.0 6 votes vote down vote up
private void doTest(final int iterations) {
    myFixture.configureByFile("functions_issue96.bash");
    enableInspections();

    long start = System.currentTimeMillis();
    PlatformTestUtil.startPerformanceTest(getTestName(true), iterations * 2000, () -> {
        for (int i = 0; i < iterations; i++) {
            long innerStart = System.currentTimeMillis();
            Editor editor = myFixture.getEditor();
            editor.getCaretModel().moveToOffset(editor.getDocument().getTextLength());

            myFixture.type("\n");
            myFixture.type("echo \"hello world\"\n");
            myFixture.type("pri");
            myFixture.complete(CompletionType.BASIC);

            System.out.println("Cycle duration: " + (System.currentTimeMillis() - innerStart));
        }
    }).usesAllCPUCores().attempts(1).assertTiming();

    System.out.println("Complete duration: " + (System.currentTimeMillis() - start));
}
 
Example 3
protected void doTestVariantsInner(CompletionType type, int count,
                                   CheckType checkType,
                                   String... variants) throws Throwable {
    myFixture.complete(type, count);
    List<String> stringList = myFixture.getLookupElementStrings();

    assertNotNull("\nPossibly the single variant has been completed.\n" +
                    "File after:\n" +
                    myFixture.getFile().getText(),
            stringList);
    Collection<String> varList = new ArrayList<String>(Arrays.asList(variants));
    if (checkType == CheckType.EQUALS) {
        UsefulTestCase.assertSameElements(stringList, variants);
    }
    else if (checkType == CheckType.INCLUDES) {
        varList.removeAll(stringList);
        assertTrue("Missing variants: " + varList, varList.isEmpty());
    }
    else if (checkType == CheckType.EXCLUDES) {
        varList.retainAll(stringList);
        assertTrue("Unexpected variants: " + varList, varList.isEmpty());
    }
}
 
Example 4
Source Project: consulo   Source File: AutoPopupControllerImpl.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public void scheduleAutoPopup(@Nonnull Editor editor, @Nonnull CompletionType completionType, @Nullable final Condition<? super PsiFile> condition) {
  //if (ApplicationManager.getApplication().isUnitTestMode() && !TestModeFlags.is(CompletionAutoPopupHandler.ourTestingAutopopup)) {
  //  return;
  //}

  boolean alwaysAutoPopup = Boolean.TRUE.equals(editor.getUserData(ALWAYS_AUTO_POPUP));
  if (!CodeInsightSettings.getInstance().AUTO_POPUP_COMPLETION_LOOKUP && !alwaysAutoPopup) {
    return;
  }
  if (PowerSaveMode.isEnabled()) {
    return;
  }

  if (!CompletionServiceImpl.isPhase(CompletionPhase.CommittingDocuments.class, CompletionPhase.NoCompletion.getClass())) {
    return;
  }

  final CompletionProgressIndicator currentCompletion = CompletionServiceImpl.getCurrentCompletionProgressIndicator();
  if (currentCompletion != null) {
    currentCompletion.closeAndFinish(true);
  }

  CompletionPhase.CommittingDocuments.scheduleAsyncCompletion(editor, completionType, condition, myProject, null);
}
 
Example 5
Source Project: consulo   Source File: CodeInsightTestFixtureImpl.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public void testCompletionTyping(final String[] filesBefore, String toType, final String fileAfter) {
  assertInitialized();
  configureByFiles(filesBefore);
  complete(CompletionType.BASIC);
  for (int i = 0; i < toType.length(); i++) {
    type(toType.charAt(i));
  }
  try {
    checkResultByFile(fileAfter);
  }
  catch (RuntimeException e) {
    System.out.println("LookupElementStrings = " + getLookupElementStrings());
    throw e;
  }
}
 
Example 6
public AdditionalLanguagesCompletionContributor() {
  extend(
      CompletionType.BASIC,
      psiElement()
          .withLanguage(ProjectViewLanguage.INSTANCE)
          .inside(
              psiElement(ProjectViewPsiListSection.class)
                  .withText(
                      StandardPatterns.string()
                          .startsWith(AdditionalLanguagesSection.KEY.getName()))),
      new CompletionProvider<CompletionParameters>() {
        @Override
        protected void addCompletions(
            CompletionParameters parameters,
            ProcessingContext context,
            CompletionResultSet result) {
          for (LanguageClass type :
              availableAdditionalLanguages(parameters.getEditor().getProject())) {
            result.addElement(LookupElementBuilder.create(type.getName()));
          }
        }
      });
}
 
Example 7
protected void doTestVariantsInner(String fileName) throws Throwable {
  final VirtualFile virtualFile = myFixture.copyFileToProject(fileName);
  final Scanner in = new Scanner(virtualFile.getInputStream());

  final CompletionType type = CompletionType.valueOf(in.next());
  final int count = in.nextInt();
  final CheckType checkType = CheckType.valueOf(in.next());

  final List<String> variants = new ArrayList<>();
  while (in.hasNext()) {
    final String variant = StringUtil.strip(in.next(), CharFilter.NOT_WHITESPACE_FILTER);
    if (variant.length() > 0) {
      variants.add(variant);
    }
  }

  myFixture.complete(type, count);
  checkCompletion(checkType, variants);
}
 
Example 8
public void testCanCompleteRenderTypes() {
    List<String> lookupElementStrings;

    myFixture.configureByText(PhpFileType.INSTANCE, "<?php $foo = ['renderType' => '<caret>'];");
    myFixture.complete(CompletionType.BASIC);
    lookupElementStrings = myFixture.getLookupElementStrings();
    assertTrue("Can complete empty value", lookupElementStrings.contains("selectSingle"));

    myFixture.configureByText(PhpFileType.INSTANCE, "<?php $foo = ['renderType' => 's<caret>'];");
    myFixture.complete(CompletionType.BASIC);
    lookupElementStrings = myFixture.getLookupElementStrings();
    assertTrue("Can complete partial value", lookupElementStrings.contains("selectSingle"));

    myFixture.configureByText(PhpFileType.INSTANCE, "<?php $GLOBALS['renderType'] = '<caret>'];");
    myFixture.complete(CompletionType.BASIC);
    lookupElementStrings = myFixture.getLookupElementStrings();
    assertTrue("Can complete empty value", lookupElementStrings.contains("selectSingle"));

    myFixture.configureByText(PhpFileType.INSTANCE, "<?php $GLOBALS['renderType'] = 's<caret>'];");
    myFixture.complete(CompletionType.BASIC);
    lookupElementStrings = myFixture.getLookupElementStrings();
    assertTrue("Can complete partial value", lookupElementStrings.contains("selectSingle"));
}
 
Example 9
public void testCanCompleteTypes() {
    List<String> lookupElementStrings;

    myFixture.configureByText(PhpFileType.INSTANCE, "<?php $foo = ['type' => '<caret>'];");
    myFixture.complete(CompletionType.BASIC);
    lookupElementStrings = myFixture.getLookupElementStrings();
    assertTrue("Can complete empty value", lookupElementStrings.contains("text"));

    myFixture.configureByText(PhpFileType.INSTANCE, "<?php $foo = ['type' => 't<caret>'];");
    myFixture.complete(CompletionType.BASIC);
    lookupElementStrings = myFixture.getLookupElementStrings();
    assertTrue("Can complete partial value", lookupElementStrings.contains("text"));

    myFixture.configureByText(PhpFileType.INSTANCE, "<?php $GLOBALS['type'] = '<caret>'];");
    myFixture.complete(CompletionType.BASIC);
    lookupElementStrings = myFixture.getLookupElementStrings();
    assertTrue("Can complete empty value", lookupElementStrings.contains("text"));

    myFixture.configureByText(PhpFileType.INSTANCE, "<?php $GLOBALS['type'] = 't<caret>'];");
    myFixture.complete(CompletionType.BASIC);
    lookupElementStrings = myFixture.getLookupElementStrings();
    assertTrue("Can complete partial value", lookupElementStrings.contains("text"));
}
 
Example 10
public BuiltInSymbolCompletionContributor() {
  extend(
      CompletionType.BASIC,
      psiElement()
          .withLanguage(BuildFileLanguage.INSTANCE)
          .withParent(ReferenceExpression.class)
          .andNot(psiComment())
          .andNot(psiElement().afterLeaf(psiElement(BuildToken.fromKind(TokenKind.INT))))
          .andNot(psiElement().inside(FuncallExpression.class))
          .andNot(psiElement().afterLeaf(psiElement().withText(".")))
          .andNot(psiElement().inFile(psiFile(BuildFileWithCustomCompletion.class))),
      new CompletionProvider<CompletionParameters>() {
        @Override
        protected void addCompletions(
            CompletionParameters parameters,
            ProcessingContext context,
            CompletionResultSet result) {
          for (String symbol : BuiltInNamesProvider.GLOBALS) {
            result.addElement(LookupElementBuilder.create(symbol));
          }
        }
      });
}
 
Example 11
Source Project: intellij-haxe   Source File: HaxeCompletionTestBase.java    License: Apache License 2.0 6 votes vote down vote up
protected void doTestVariantsInner(String fileName) throws Throwable {
  final VirtualFile virtualFile = myFixture.copyFileToProject(fileName);
  final Scanner in = new Scanner(virtualFile.getInputStream());

  final CompletionType type = CompletionType.valueOf(in.next());
  final int count = in.nextInt();
  final CheckType checkType = CheckType.valueOf(in.next());

  final List<String> variants = new ArrayList<String>();
  while (in.hasNext()) {
    final String variant = StringUtil.strip(in.next(), CharFilter.WHITESPACE_FILTER);
    if (variant.length() > 0) {
      variants.add(variant);
    }
  }

  myFixture.complete(type, count);
  checkCompletion(checkType, variants);
}
 
Example 12
public ShaderLabCGCompletionContributor()
{
	extend(CompletionType.BASIC, StandardPatterns.psiElement().withLanguage(CGLanguage.INSTANCE), new CompletionProvider()
	{
		@RequiredReadAction
		@Override
		public void addCompletions(@Nonnull CompletionParameters parameters, ProcessingContext context, @Nonnull final CompletionResultSet result)
		{
			Place shreds = InjectedLanguageUtil.getShreds(parameters.getOriginalFile());

			for(PsiLanguageInjectionHost.Shred shred : shreds)
			{
				PsiLanguageInjectionHost host = shred.getHost();
				if(host instanceof ShaderCGScript)
				{
					ShaderLabFile containingFile = (ShaderLabFile) host.getContainingFile();
					ShaderReference.consumeProperties(containingFile, result::addElement);
				}
			}
		}
	});
}
 
Example 13
Source Project: intellij-sdk-docs   Source File: SimpleCodeInsightTest.java    License: Apache License 2.0 5 votes vote down vote up
public void testCompletion() {
  myFixture.configureByFiles("CompleteTestData.java", "DefaultTestData.simple");
  myFixture.complete(CompletionType.BASIC, 1);
  List<String> strings = myFixture.getLookupElementStrings();
  assertTrue(strings.containsAll(Arrays.asList("key with spaces", "language", "message", "tab", "website")));
  assertEquals(5, strings.size());
}
 
Example 14
@Override
public void run() {
    CommandProcessor.getInstance().executeCommand(getProject(), () -> {
        final CodeCompletionHandlerBase handler = new CodeCompletionHandlerBase(CompletionType.BASIC) {

            @Override
            protected void completionFinished(final CompletionProgressIndicator indicator, boolean hasModifiers) {

                // find our lookup element
                final LookupElement lookupElement = ContainerUtil.find(indicator.getLookup().getItems(), insert::match);

                if(lookupElement == null) {
                    fail("No matching lookup element found");
                }

                // overwrite behavior and force completion + insertHandler
                CommandProcessor.getInstance().executeCommand(indicator.getProject(), new Runnable() {
                    @Override
                    public void run() {
                        //indicator.setMergeCommand(); Currently method has package level access
                        indicator.getLookup().finishLookup(Lookup.AUTO_INSERT_SELECT_CHAR, lookupElement);
                    }
                }, "Autocompletion", null);
            }
        };

        Editor editor = InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(getEditor(), getFile());
        handler.invokeCompletion(getProject(), editor);
        PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
    }, null, null);
}
 
Example 15
public void testJavaInTheMiddleUnresolvedOptionsCompletion() {
    myFixture.configureByText("JavaCaretInMiddleOptionsTestData.java", getJavaInTheMiddleUnresolvedOptionsTestData());
    myFixture.complete(CompletionType.BASIC, 1);
    List<String> strings = myFixture.getLookupElementStrings();
    assertThat(strings, Matchers.not(Matchers.contains("timer:trigger?repeatCount=10")));
    assertThat(strings, Matchers.contains("timer:trigger?repeatCount=10&exceptionHandler",
        "timer:trigger?repeatCount=10&exchangePattern"));
    assertTrue("There is less options", strings.size() == 2);
}
 
Example 16
public void assertCompletion3rdInvocationNotContains(String filename, String configureByText, String... lookupStrings) {
    myFixture.configureByText(filename, configureByText);
    myFixture.complete(CompletionType.BASIC, 3);

    List<String> lookupElementStrings = myFixture.getLookupElementStrings();
    assertNotNull(lookupElementStrings);
    assertFalse(lookupElementStrings.containsAll(Arrays.asList(lookupStrings)));
}
 
Example 17
KeywordCompletionContributor(ORTypes types) {
    extend(CompletionType.BASIC, psiElement(), new CompletionProvider<CompletionParameters>() {
        @Override
        protected void addCompletions(@NotNull CompletionParameters parameters, @NotNull ProcessingContext context, @NotNull CompletionResultSet result) {
            PsiElement position = parameters.getPosition();
            PsiElement originalPosition = parameters.getOriginalPosition();
            PsiElement element = originalPosition == null ? position : originalPosition;
            IElementType prevNodeType = CompletionUtils.getPrevNodeType(element);
            PsiElement parent = element.getParent();
            PsiElement grandParent = parent == null ? null : parent.getParent();

            if (LOG.isTraceEnabled()) {
                LOG.trace("»» Completion: position: " + position + ", " + position.getText());
                LOG.trace("               original: " + originalPosition + ", " + (originalPosition == null ? null : originalPosition.getText()));
                LOG.trace("                element: " + element);
                LOG.trace("                 parent: " + parent);
                LOG.trace("           grand-parent: " + grandParent);
                LOG.trace("                   file: " + parameters.getOriginalFile());
            }

            if (originalPosition == null && parent instanceof FileBase) {
                if (prevNodeType != types.DOT && prevNodeType != types.SHARPSHARP && prevNodeType != types.C_LOWER_SYMBOL) {
                    addFileKeywords(result);
                }
            }
        }
    });
}
 
Example 18
public void testStepAutoCompletion() throws Exception {
    myFixture.configureByFiles("SimpleSpec.spec", "SimpleSpec.txt");
    Gauge.addModule(myFixture.getModule(), new GaugeService(mockProcess, mockGaugeConnection));
    StepValue stepValue1 = new StepValue("This is a step", "This is a step");
    StepValue stepValue2 = new StepValue("Hello", "Hello");
    StepValue stepValue3 = new StepValue("The step", "The step");
    when(mockGaugeConnection.fetchAllSteps()).thenReturn(asList(stepValue1, stepValue2, stepValue3));
    myFixture.getEditor().getCaretModel().moveToOffset(49);
    myFixture.complete(CompletionType.BASIC, 1);
    List<String> strings = myFixture.getLookupElementStrings();
    assertEquals(2, strings.size());
    assertTrue(strings.containsAll(asList("This is a step", "The step")));
}
 
Example 19
Source Project: reasonml-idea-plugin   Source File: Jsx3NameCompletionTest.java    License: MIT License 5 votes vote down vote up
public void testShouldNotDisplayProperties() {
    myFixture.configureByText("DialogHeader.re", "[@react.component] let make = () => { <div/> };");

    myFixture.configureByText(RmlFileType.INSTANCE, "let _ = <<caret>Dialog");
    myFixture.complete(CompletionType.BASIC, 1);

    List<String> completions = myFixture.getLookupElementStrings();
    assertEquals(1, completions.size());
    assertEquals("DialogHeader", completions.get(0));
}
 
Example 20
private void doTest(String... expectedSuggestions) {
  final String fileName = getTestName(false).replace('$', '/') + ".java";

  myFixture.copyFileToProject(getBasePath() + "/lombok.config", "lombok.config");
  myFixture.configureByFile(getBasePath() + "/" + fileName);
  myFixture.complete(CompletionType.BASIC, 1);
  List<String> autoSuggestions = myFixture.getLookupElementStrings();
  assertNotNull(autoSuggestions);
  assertThat("Autocomplete doesn't contain right suggestions", autoSuggestions, CoreMatchers.hasItems(expectedSuggestions));
}
 
Example 21
Source Project: reasonml-idea-plugin   Source File: DotCompletionTest.java    License: MIT License 5 votes vote down vote up
public void testEndOfFile() {
    configureCode("A.re", "type x;");
    configureCode("B.re", "A.<caret>");

    myFixture.complete(CompletionType.BASIC, 1);
    List<String> elements = myFixture.getLookupElementStrings();

    assertSameElements(elements, "x");
}
 
Example 22
Source Project: intellij-haxe   Source File: HaxeCompletionTestBase.java    License: Apache License 2.0 5 votes vote down vote up
protected void doTestInclude(String... extraFiles) throws Throwable {
  final List<String> files = new ArrayList<String>();
  files.add(getTestName(false) + ".hx");
  Collections.addAll(files, extraFiles);
  myFixture.configureByFiles(files.toArray(new String[0]));
  final VirtualFile virtualFile = myFixture.copyFileToProject(getTestName(false) + ".txt");
  String text = new String(virtualFile.contentsToByteArray());
  List<String> includeLines = new ArrayList<String>();
  List<String> excludeLines = new ArrayList<String>();
  boolean include = true;
  for (String line : text.split("\n")) {
    line = line.trim();
    if (line.equals(":INCLUDE")) {
      include = true;
    } else if (line.equals(":EXCLUDE")) {
      include = false;
    } else if (line.length() == 0) {

    } else {
      if (include) {
        includeLines.add(line);
      } else {
        excludeLines.add(line);
      }
    }
    //System.out.println(line);
  }
  //System.out.println(text);
  myFixture.complete(CompletionType.BASIC, 1);
  checkCompletion(CheckType.INCLUDES, includeLines);
  checkCompletion(CheckType.EXCLUDES, excludeLines);
}
 
Example 23
Source Project: reasonml-idea-plugin   Source File: DotCompletionTest.java    License: MIT License 5 votes vote down vote up
public void testSingleAlias() {
    // like ReasonReact.Router
    configureCode("ReasonReactRouter.rei", "type watcherID;");
    configureCode("ReasonReact.rei", "module Router = ReasonReactRouter;");

    configureCode("Dummy.re", "ReasonReact.Router.<caret>");

    myFixture.complete(CompletionType.BASIC, 1);
    List<String> elements = myFixture.getLookupElementStrings();

    assertSize(1, elements);
    assertEquals("watcherID", elements.get(0));
}
 
Example 24
Source Project: reasonml-idea-plugin   Source File: DotCompletionTest.java    License: MIT License 5 votes vote down vote up
public void testRml_AliasInFile() {
    // like ReasonReact.Router
    configureCode("View.re", "module Detail = { let alias = \"a\"; };");
    configureCode("Dummy.re", "module V = View.Detail; V.<caret>");

    myFixture.complete(CompletionType.BASIC, 1);
    List<String> elements = myFixture.getLookupElementStrings();

    assertSize(1, elements);
    assertEquals("alias", elements.get(0));
}
 
Example 25
Source Project: reasonml-idea-plugin   Source File: DotCompletionTest.java    License: MIT License 5 votes vote down vote up
public void testRml_Uncurried() {
    configureCode("A.re", "let x = 1;");
    configureCode("B.re", "send(. <caret>)"); // should use free completion

    myFixture.complete(CompletionType.BASIC, 1);
    List<String> strings = myFixture.getLookupElementStrings();

    assertSameElements(strings, "A");
}
 
Example 26
public void testEnum() {
    myFixture.configureByFiles("CompleteJavaEndpointSyntaxEnumTestData.java");
    myFixture.complete(CompletionType.BASIC, 1);
    List<String> strings = myFixture.getLookupElementStrings();
    assertEquals(5, strings.size());
    assertThat(strings, Matchers.contains("jms:", "jms:queue", "jms:topic", "jms:temp-queue", "jms:temp-topic"));
}
 
Example 27
/**
 * Test if code completion works with inside the bean dsl with an empty string.
 */
public void testJavaBeanTestDataCompletionWithEmptyBeanRef() {
    myFixture.configureByFiles("CompleteJavaBeanRoute10TestData.java", "CompleteJavaSpringRepositoryBeanTestData.java");
    myFixture.complete(CompletionType.BASIC, 1);
    List<String> strings = myFixture.getLookupElementStrings();
    assertEquals("There is many options", 2, strings.size());
}
 
Example 28
Source Project: reasonml-idea-plugin   Source File: DotCompletionTest.java    License: MIT License 5 votes vote down vote up
public void testOcl_functorWithReturnType() {
    configureCode("A.ml", "module type Intf  = sig val x : bool end\n module MakeOcl(I:Intf) : Intf = struct let y = 1 end");
    configureCode("B.ml", "open A\n module Instance = MakeOcl(struct let x = true end)");
    configureCode("C.ml", "open B let _ = Instance.<caret>");

    myFixture.complete(CompletionType.BASIC, 1);
    List<String> elements = myFixture.getLookupElementStrings();

    assertSameElements(elements, "x");
}
 
Example 29
public void testJavaBeanWithClassHierarchy() {
    myFixture.configureByFiles("CompleteJavaBeanRouteTestData.java", "CompleteJavaBeanTestData.java", "CompleteJavaBeanSuperClassTestData.java");
    myFixture.complete(CompletionType.BASIC, 1);
    List<String> strings = myFixture.getLookupElementStrings();
    assertThat(strings, Matchers.not(Matchers.contains("thisIsVeryPrivate")));
    assertThat(strings, Matchers.hasItems("letsDoThis", "anotherBeanMethod", "mySuperAbstractMethod", "mySuperMethod", "myOverLoadedBean", "myOverLoadedBean"));
    assertEquals("There is many options", 6, strings.size());
}
 
Example 30
@Test
public void testCompleteClassName() {
  workspace.createPsiFile(
      new WorkspacePath("java/com/google/bin/Main.java"),
      "package com.google.bin;",
      "public class Main {",
      "  public void main() {}",
      "}");
  BuildFile file =
      createBuildFile(
          new WorkspacePath("java/com/google/BUILD"),
          "java_binary(",
          "    name = 'binary',",
          "    main_class = 'com.google.bin.M',",
          ")");

  Editor editor = editorTest.openFileInEditor(file.getVirtualFile());
  editorTest.setCaretPosition(editor, 2, "    main_class = 'com.google.bin.M".length());

  LookupElement[] completionItems = testFixture.complete(CompletionType.CLASS_NAME);
  assertThat(completionItems).isNull();
  assertFileContents(
      file,
      "java_binary(",
      "    name = 'binary',",
      "    main_class = 'com.google.bin.Main',",
      ")");
}