List of usage examples for com.intellij.openapi.actionSystem IdeActions ACTION_CODE_COMPLETION
String ACTION_CODE_COMPLETION
To view the source code for com.intellij.openapi.actionSystem IdeActions ACTION_CODE_COMPLETION.
Click Source Link
From source file:com.intellij.application.options.CodeCompletionPanel.java
License:Apache License
public CodeCompletionPanel() { //noinspection unchecked myCaseSensitiveCombo.setModel(new DefaultComboBoxModel(CASE_VARIANTS)); ActionManager actionManager = ActionManager.getInstance(); String basicShortcut = KeymapUtil .getFirstKeyboardShortcutText(actionManager.getAction(IdeActions.ACTION_CODE_COMPLETION)); String smartShortcut = KeymapUtil .getFirstKeyboardShortcutText(actionManager.getAction(IdeActions.ACTION_SMART_TYPE_COMPLETION)); if (StringUtil.isNotEmpty(basicShortcut)) { myCbOnCodeCompletion.setText(myCbOnCodeCompletion.getText() + " ( " + basicShortcut + " )"); }/*www. j a va 2s . c om*/ if (StringUtil.isNotEmpty(smartShortcut)) { myCbOnSmartTypeCompletion.setText(myCbOnSmartTypeCompletion.getText() + " ( " + smartShortcut + " )"); } myCbAutocompletion.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { boolean selected = myCbAutocompletion.isSelected(); myCbSelectByChars.setEnabled(selected); } }); myCbAutopopupJavaDoc.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { myAutopopupJavaDocField.setEnabled(myCbAutopopupJavaDoc.isSelected()); } }); myCbParameterInfoPopup.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { myParameterInfoDelayField.setEnabled(myCbParameterInfoPopup.isSelected()); } }); reset(); }
From source file:com.intellij.codeInsight.completion.FilePathCompletionContributor.java
License:Apache License
public FilePathCompletionContributor() { extend(CompletionType.BASIC, psiElement(), new CompletionProvider<CompletionParameters>() { @Override/*from w w w . ja v a2 s . co m*/ protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet result) { final PsiReference psiReference = parameters.getPosition().getContainingFile() .findReferenceAt(parameters.getOffset()); if (getReference(psiReference) != null && parameters.getInvocationCount() == 1) { final String shortcut = getActionShortcut(IdeActions.ACTION_CODE_COMPLETION); if (shortcut != null) { result.addLookupAdvertisement( CodeInsightBundle.message("class.completion.file.path", shortcut)); } } } }); CompletionProvider<CompletionParameters> provider = new CompletionProvider<CompletionParameters>() { @Override protected void addCompletions(@NotNull final CompletionParameters parameters, ProcessingContext context, @NotNull final CompletionResultSet _result) { if (!parameters.isExtendedCompletion()) { return; } @NotNull final CompletionResultSet result = _result.caseInsensitive(); final PsiElement e = parameters.getPosition(); final Project project = e.getProject(); final PsiReference psiReference = parameters.getPosition().getContainingFile() .findReferenceAt(parameters.getOffset()); final Pair<FileReference, Boolean> fileReferencePair = getReference(psiReference); if (fileReferencePair != null) { final FileReference first = fileReferencePair.getFirst(); if (first == null) return; final FileReferenceSet set = first.getFileReferenceSet(); String prefix = set.getPathString().substring(0, parameters.getOffset() - set.getElement().getTextRange().getStartOffset() - set.getStartInElement()); List<String> pathPrefixParts = null; int lastSlashIndex; if ((lastSlashIndex = prefix.lastIndexOf('/')) != -1) { pathPrefixParts = StringUtil.split(prefix.substring(0, lastSlashIndex), "/"); prefix = prefix.substring(lastSlashIndex + 1); } final CompletionResultSet __result = result.withPrefixMatcher(prefix).caseInsensitive(); final PsiFile originalFile = parameters.getOriginalFile(); final VirtualFile contextFile = originalFile.getVirtualFile(); if (contextFile != null) { final String[] fileNames = getAllNames(project); final Set<String> resultNames = new TreeSet<String>(); for (String fileName : fileNames) { if (filenameMatchesPrefixOrType(fileName, prefix, set.getSuitableFileTypes(), parameters.getInvocationCount())) { resultNames.add(fileName); } } final ProjectFileIndex index = ProjectRootManager.getInstance(project).getFileIndex(); final Module contextModule = index.getModuleForFile(contextFile); if (contextModule != null) { final List<FileReferenceHelper> helpers = FileReferenceHelperRegistrar .getHelpers(originalFile); final GlobalSearchScope scope = ProjectScope.getProjectScope(project); for (final String name : resultNames) { ProgressManager.checkCanceled(); final PsiFile[] files = FilenameIndex.getFilesByName(project, name, scope); if (files.length > 0) { for (final PsiFile file : files) { ProgressManager.checkCanceled(); final VirtualFile virtualFile = file.getVirtualFile(); if (virtualFile != null && virtualFile.isValid() && !Comparing.equal(virtualFile, contextFile)) { for (FileReferenceHelper contextHelper : helpers) { ProgressManager.checkCanceled(); if (contextHelper.isMine(project, virtualFile)) { if (pathPrefixParts == null || fileMatchesPathPrefix( contextHelper.getPsiFileSystemItem(project, virtualFile), pathPrefixParts)) { __result.addElement( new FilePathLookupItem(file, contextHelper)); } } } } } } } } } if (set.getSuitableFileTypes().length > 0 && parameters.getInvocationCount() == 1) { final String shortcut = getActionShortcut(IdeActions.ACTION_CODE_COMPLETION); if (shortcut != null) { result.addLookupAdvertisement( CodeInsightBundle.message("class.completion.file.path.all.variants", shortcut)); } } if (fileReferencePair.getSecond()) result.stopHere(); } } }; extend(CompletionType.BASIC, psiElement(), provider); }
From source file:com.intellij.codeInsight.completion.JavaClassNameCompletionContributor.java
License:Apache License
@Override public String handleEmptyLookup(@NotNull final CompletionParameters parameters, final Editor editor) { if (!(parameters.getOriginalFile() instanceof PsiJavaFile)) return null; if (shouldShowSecondSmartCompletionHint(parameters)) { return LangBundle.message("completion.no.suggestions") + "; " + StringUtil.decapitalize(CompletionBundle .message("completion.class.name.hint.2", getActionShortcut(IdeActions.ACTION_CODE_COMPLETION))); }//from w w w. j a v a2 s. c o m return null; }
From source file:com.intellij.codeInsight.completion.JavaCompletionContributor.java
License:Apache License
public static void advertiseSecondCompletion(Project project, CompletionResultSet result) { if (FeatureUsageTracker.getInstance() .isToBeAdvertisedInLookup(CodeCompletionFeatures.SECOND_BASIC_COMPLETION, project)) { result.addLookupAdvertisement("Press " + getActionShortcut(IdeActions.ACTION_CODE_COMPLETION) + " to see non-imported classes"); }/*from w w w .j a v a 2s .c o m*/ }
From source file:com.intellij.codeInsight.completion.JavaCompletionContributor.java
License:Apache License
@Override public String advertise(@NotNull final CompletionParameters parameters) { if (!(parameters.getOriginalFile() instanceof PsiJavaFile)) { return null; }/*from w ww. j av a 2 s. c o m*/ if (parameters.getCompletionType() == CompletionType.BASIC && parameters.getInvocationCount() > 0) { PsiElement position = parameters.getPosition(); if (psiElement().withParent( psiReferenceExpression().withFirstChild(psiReferenceExpression().referencing(psiClass()))) .accepts(position)) { if (CompletionUtil.shouldShowFeature(parameters, JavaCompletionFeatures.GLOBAL_MEMBER_NAME)) { final String shortcut = getActionShortcut(IdeActions.ACTION_CODE_COMPLETION); if (shortcut != null) { return "Pressing " + shortcut + " twice without a class qualifier would show all accessible static methods"; } } } } if (parameters.getCompletionType() != CompletionType.SMART && shouldSuggestSmartCompletion(parameters.getPosition())) { if (CompletionUtil.shouldShowFeature(parameters, CodeCompletionFeatures.EDITING_COMPLETION_SMARTTYPE_GENERAL)) { final String shortcut = getActionShortcut(IdeActions.ACTION_SMART_TYPE_COMPLETION); if (shortcut != null) { return CompletionBundle.message("completion.smart.hint", shortcut); } } } if (parameters.getCompletionType() == CompletionType.SMART && parameters.getInvocationCount() == 1) { final PsiType[] psiTypes = ExpectedTypesGetter.getExpectedTypes(parameters.getPosition(), true); if (psiTypes.length > 0) { if (CompletionUtil.shouldShowFeature(parameters, JavaCompletionFeatures.SECOND_SMART_COMPLETION_TOAR)) { final String shortcut = getActionShortcut(IdeActions.ACTION_SMART_TYPE_COMPLETION); if (shortcut != null) { for (final PsiType psiType : psiTypes) { final PsiType type = PsiUtil.extractIterableTypeParameter(psiType, false); if (type != null) { return CompletionBundle.message("completion.smart.aslist.hint", shortcut, type.getPresentableText()); } } } } if (CompletionUtil.shouldShowFeature(parameters, JavaCompletionFeatures.SECOND_SMART_COMPLETION_ASLIST)) { final String shortcut = getActionShortcut(IdeActions.ACTION_SMART_TYPE_COMPLETION); if (shortcut != null) { for (final PsiType psiType : psiTypes) { if (psiType instanceof PsiArrayType) { final PsiType componentType = ((PsiArrayType) psiType).getComponentType(); if (!(componentType instanceof PsiPrimitiveType)) { return CompletionBundle.message("completion.smart.toar.hint", shortcut, componentType.getPresentableText()); } } } } } if (CompletionUtil.shouldShowFeature(parameters, JavaCompletionFeatures.SECOND_SMART_COMPLETION_CHAIN)) { final String shortcut = getActionShortcut(IdeActions.ACTION_SMART_TYPE_COMPLETION); if (shortcut != null) { return CompletionBundle.message("completion.smart.chain.hint", shortcut); } } } } return null; }
From source file:com.intellij.codeInsight.completion.XmlCompletionContributor.java
License:Apache License
@Override public String advertise(@Nonnull final CompletionParameters parameters) { if (isXmlNameCompletion(parameters) && parameters.getCompletionType() == CompletionType.BASIC) { if (FeatureUsageTracker.getInstance().isToBeAdvertisedInLookup(TAG_NAME_COMPLETION_FEATURE, parameters.getPosition().getProject())) { final String shortcut = getActionShortcut(IdeActions.ACTION_CODE_COMPLETION); return XmlBundle.message("tag.name.completion.hint", shortcut); }// w w w . j a v a 2 s . co m } return super.advertise(parameters); }
From source file:com.intellij.find.editorHeaderActions.VariantsCompletionAction.java
License:Apache License
public VariantsCompletionAction(EditorSearchComponent editorSearchComponent, Getter<JTextComponent> textField) { myEditorSearchComponent = editorSearchComponent; final AnAction action = ActionManager.getInstance().getAction(IdeActions.ACTION_CODE_COMPLETION); setTextField(textField);//from www .j av a 2 s. co m if (action != null) { registerCustomShortcutSet(action.getShortcutSet(), getTextField()); } }
From source file:com.intellij.refactoring.copy.CopyFilesOrDirectoriesDialog.java
License:Apache License
@Override protected JComponent createNorthPanel() { myInformationLabel = JBLabelDecorator.createJBLabelDecorator().setBold(true); final FormBuilder formBuilder = FormBuilder.createFormBuilder().addComponent(myInformationLabel) .addVerticalGap(UIUtil.LARGE_VGAP - UIUtil.DEFAULT_VGAP); DocumentListener documentListener = new DocumentAdapter() { @Override/*from w w w. j a v a 2 s.co m*/ public void textChanged(DocumentEvent event) { validateOKButton(); } }; if (myShowNewNameField) { myNewNameField = new JTextField(); myNewNameField.getDocument().addDocumentListener(documentListener); formBuilder.addLabeledComponent(RefactoringBundle.message("copy.files.new.name.label"), myNewNameField); } if (myShowDirectoryField) { myTargetDirectoryField = new TextFieldWithHistoryWithBrowseButton(); myTargetDirectoryField.setTextFieldPreferredWidth(MAX_PATH_LENGTH); final List<String> recentEntries = RecentsManager.getInstance(myProject).getRecentEntries(RECENT_KEYS); if (recentEntries != null) { myTargetDirectoryField.getChildComponent().setHistory(recentEntries); } final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor(); myTargetDirectoryField.addBrowseFolderListener(RefactoringBundle.message("select.target.directory"), RefactoringBundle.message("the.file.will.be.copied.to.this.directory"), myProject, descriptor, TextComponentAccessor.TEXT_FIELD_WITH_HISTORY_WHOLE_TEXT); myTargetDirectoryField.getChildComponent().addDocumentListener(new DocumentAdapter() { @Override protected void textChanged(DocumentEvent e) { validateOKButton(); } }); formBuilder.addLabeledComponent(RefactoringBundle.message("copy.files.to.directory.label"), myTargetDirectoryField); String shortcutText = KeymapUtil.getFirstKeyboardShortcutText( ActionManager.getInstance().getAction(IdeActions.ACTION_CODE_COMPLETION)); formBuilder.addTooltip(RefactoringBundle.message("path.completion.shortcut", shortcutText)); } final JPanel wrapper = new JPanel(new BorderLayout()); wrapper.add(myOpenFilesInEditor, BorderLayout.EAST); formBuilder.addComponent(wrapper); return formBuilder.getPanel(); }
From source file:com.intellij.refactoring.move.moveFilesOrDirectories.MoveFilesOrDirectoriesDialog.java
License:Apache License
@Override protected JComponent createNorthPanel() { myNameLabel = JBLabelDecorator.createJBLabelDecorator().setBold(true); myTargetDirectoryField = new TextFieldWithHistoryWithBrowseButton(); final List<String> recentEntries = RecentsManager.getInstance(myProject).getRecentEntries(RECENT_KEYS); if (recentEntries != null) { myTargetDirectoryField.getChildComponent().setHistory(recentEntries); }/*w ww . j av a 2 s. c om*/ final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor(); myTargetDirectoryField.addBrowseFolderListener(RefactoringBundle.message("select.target.directory"), RefactoringBundle.message("the.file.will.be.moved.to.this.directory"), myProject, descriptor, TextComponentAccessor.TEXT_FIELD_WITH_HISTORY_WHOLE_TEXT); final JTextField textField = myTargetDirectoryField.getChildComponent().getTextEditor(); FileChooserFactory.getInstance().installFileCompletion(textField, descriptor, true, getDisposable()); textField.getDocument().addDocumentListener(new DocumentAdapter() { @Override protected void textChanged(DocumentEvent e) { validateOKButton(); } }); myTargetDirectoryField.setTextFieldPreferredWidth(CopyFilesOrDirectoriesDialog.MAX_PATH_LENGTH); Disposer.register(getDisposable(), myTargetDirectoryField); String shortcutText = KeymapUtil.getFirstKeyboardShortcutText( ActionManager.getInstance().getAction(IdeActions.ACTION_CODE_COMPLETION)); myCbSearchForReferences = new NonFocusableCheckBox(RefactoringBundle.message("search.for.references")); myCbSearchForReferences.setSelected(RefactoringSettings.getInstance().MOVE_SEARCH_FOR_REFERENCES_FOR_FILE); return FormBuilder.createFormBuilder().addComponent(myNameLabel) .addLabeledComponent(RefactoringBundle.message("move.files.to.directory.label"), myTargetDirectoryField, UIUtil.LARGE_VGAP) .addTooltip(RefactoringBundle.message("path.completion.shortcut", shortcutText)) .addComponentToRightColumn(myCbSearchForReferences, UIUtil.LARGE_VGAP).getPanel(); }
From source file:com.intellij.ui.TextFieldWithAutoCompletion.java
License:Apache License
@Override protected EditorEx createEditor() { final EditorEx editor = super.createEditor(); if (!myShowAutocompletionIsAvailableHint) { return editor; }/*from w w w .j a v a 2 s . c om*/ final String completionShortcutText = KeymapUtil.getFirstKeyboardShortcutText( ActionManager.getInstance().getAction(IdeActions.ACTION_CODE_COMPLETION)); if (StringUtil.isEmpty(completionShortcutText)) { return editor; } final Ref<Boolean> toShowHintRef = new Ref<Boolean>(true); editor.getDocument().addDocumentListener(new DocumentAdapter() { @Override public void documentChanged(DocumentEvent e) { toShowHintRef.set(false); } }); editor.addFocusListener(new FocusChangeListener() { @Override public void focusGained(final Editor editor) { if (toShowHintRef.get() && getText().length() == 0) { ApplicationManager.getApplication().invokeLater(new Runnable() { @Override public void run() { HintManager.getInstance().showInformationHint(editor, "Code completion available ( " + completionShortcutText + " )"); } }); } } @Override public void focusLost(Editor editor) { // Do nothing } }); return editor; }