add stackoverflow-plugin-gradle project
This commit is contained in:
parent
357ecb0341
commit
bad42826d5
|
@ -0,0 +1,25 @@
|
||||||
|
plugins {
|
||||||
|
id 'java'
|
||||||
|
id 'org.jetbrains.intellij' version '0.4.21'
|
||||||
|
}
|
||||||
|
|
||||||
|
group 'com.baeldung'
|
||||||
|
version '1.0-SNAPSHOT'
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
testCompile group: 'junit', name: 'junit', version: '4.12'
|
||||||
|
}
|
||||||
|
|
||||||
|
// See https://github.com/JetBrains/gradle-intellij-plugin/
|
||||||
|
intellij {
|
||||||
|
version '2020.1.1'
|
||||||
|
}
|
||||||
|
patchPluginXml {
|
||||||
|
changeNotes """
|
||||||
|
Add change notes here.<br>
|
||||||
|
<em>most HTML tags may be used</em>"""
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
rootProject.name = 'stackoverflow-plugin-gradle'
|
||||||
|
include 'java'
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.baeldung.intellij.stackoverflowplugin;
|
||||||
|
|
||||||
|
import com.intellij.ide.BrowserUtil;
|
||||||
|
import com.intellij.openapi.actionSystem.AnAction;
|
||||||
|
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||||
|
|
||||||
|
public class AskQuestionAction extends AnAction {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(AnActionEvent e) {
|
||||||
|
BrowserUtil.browse("https://stackoverflow.com/questions/ask");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.baeldung.intellij.stackoverflowplugin;
|
||||||
|
|
||||||
|
import com.intellij.ide.BrowserUtil;
|
||||||
|
import com.intellij.lang.Language;
|
||||||
|
import com.intellij.openapi.actionSystem.AnAction;
|
||||||
|
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||||
|
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||||
|
import com.intellij.openapi.actionSystem.LangDataKeys;
|
||||||
|
import com.intellij.openapi.editor.CaretModel;
|
||||||
|
import com.intellij.openapi.editor.Editor;
|
||||||
|
import com.intellij.psi.PsiFile;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
public class SearchAction extends AnAction {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(@NotNull AnActionEvent e) {
|
||||||
|
Optional<PsiFile> psiFile = Optional.ofNullable(e.getData(LangDataKeys.PSI_FILE));
|
||||||
|
String languageTag = psiFile
|
||||||
|
.map(PsiFile::getLanguage)
|
||||||
|
.map(Language::getDisplayName)
|
||||||
|
.map(String::toLowerCase)
|
||||||
|
.map(lang -> "[" + lang + "]")
|
||||||
|
.orElse("");
|
||||||
|
|
||||||
|
Editor editor = e.getRequiredData(CommonDataKeys.EDITOR);
|
||||||
|
CaretModel caretModel = editor.getCaretModel();
|
||||||
|
String selectedText = caretModel.getCurrentCaret().getSelectedText();
|
||||||
|
|
||||||
|
BrowserUtil.browse("https://stackoverflow.com/search?q=" + languageTag + selectedText);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update(AnActionEvent e) {
|
||||||
|
Editor editor = e.getRequiredData(CommonDataKeys.EDITOR);
|
||||||
|
CaretModel caretModel = editor.getCaretModel();
|
||||||
|
e.getPresentation().setEnabledAndVisible(caretModel.getCurrentCaret().hasSelection());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
<idea-plugin>
|
||||||
|
<id>com.baeldung.stackoverflow-plugin-gradle</id>
|
||||||
|
<name>StackOverflow</name>
|
||||||
|
<vendor email="waldemar.penner91@gmail.com" url="https://baeldung.com">Baeldung</vendor>
|
||||||
|
|
||||||
|
<description><![CDATA[
|
||||||
|
Ask Question or search on Stack Overflow
|
||||||
|
]]></description>
|
||||||
|
|
||||||
|
<!-- please see https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
|
||||||
|
on how to target different products -->
|
||||||
|
<depends>com.intellij.modules.platform</depends>
|
||||||
|
|
||||||
|
<extensions defaultExtensionNs="com.intellij">
|
||||||
|
<!-- Add your extensions here -->
|
||||||
|
</extensions>
|
||||||
|
|
||||||
|
<actions>
|
||||||
|
<action
|
||||||
|
id="StackOverflow.AskQuestion.ToolsMenu"
|
||||||
|
class="com.baeldung.intellij.stackoverflowplugin.AskQuestionAction"
|
||||||
|
text="Ask Question on Stack Overflow"
|
||||||
|
description="Ask a Question on Stack Overflow">
|
||||||
|
<add-to-group group-id="ToolsMenu" anchor="last"/>
|
||||||
|
</action>
|
||||||
|
<action
|
||||||
|
id="StackOverflow.Search.Editor"
|
||||||
|
class="com.baeldung.intellij.stackoverflowplugin.SearchAction"
|
||||||
|
text="Search on Stack Overflow"
|
||||||
|
description="Search on Stack Overflow">
|
||||||
|
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
|
||||||
|
</action>
|
||||||
|
<action
|
||||||
|
id="StackOverflow.Search.Console"
|
||||||
|
class="com.baeldung.intellij.stackoverflowplugin.SearchAction"
|
||||||
|
text="Search on Stack Overflow"
|
||||||
|
description="Search on Stack Overflow">
|
||||||
|
<add-to-group group-id="ConsoleEditorPopupMenu" anchor="last"/>
|
||||||
|
</action>
|
||||||
|
</actions>
|
||||||
|
</idea-plugin>
|
Loading…
Reference in New Issue