美文网首页Android知识Android开发Android技术知识
一步一步学习android studio 插件开发(二)

一步一步学习android studio 插件开发(二)

作者: 明慢慢 | 来源:发表于2016-12-03 22:32 被阅读525次

    通过action获得editor中的内容

    如果你不熟悉如何开始一个plugin,一步一步(一)
    本次主要实现功能

    1. 通过在主菜单上添加一个自己的菜单项,
    2. 点击后可以获得编辑器的内容
      本次涉及内容
    3. 如何将自己的菜单插入到合适的位置,
    4. 如何获得editor中的内容

    一:向主菜单上添加一项新菜单

    这一步完成后的效果


    1. 启动一个新的plugin项目
      在plugin.xml中的<actions>....</actions>添加菜单组和对应菜单项
    <actions>
      <group id="MingManMan.Menu" text="我的菜单" description="慢慢的菜单组">
        <add-to-group group-id="MainMenu" anchor="last"  />
           <action id="MingManMan.ReadDocument" class="ReadDocument" text="获得Editor中的内容" description="获得编辑器中的全部内容" />
      </group>
    </actions>
    
    1. <group> 标签表示这个是个菜单组,text属性是显示的内容,'description'描述

    2. <add-to-group>标签表示要添加到那个菜单,group-id是添加到的菜单id,这里是MainMenu,就是添加到组菜单上,anchor表示具体菜单的什么位置,这里是last表示添加到主菜单的最后,就是Help菜单后面了。

    3. 系统的group-id比较多,常见的描述下,要想了解更多可以参考这个网页Built-in Action ID's,或者查看源代码的platform\platform-resources-en\src\messages\ActionsBundle.properties这个文件。

    4. MainMenu:ide的主菜单; FileMenu:file菜单; EditMenu:edit菜单; ViewMenu: view菜单;GoToMenu:Navigate;CodeMenu:code; AnalyzeMenu:Analyze; RefactoringMenu:Refactor; BuildMenu: Build; RunMenu:Run; ToolsMenu:Tools;VcsGroups: VCS WindowMenu:Window; HelpMenu:Help

    5. EditorPopupMenu:编辑器中的右键菜单

    6. class="ReadDocument":这个是要用来承接action的一个类。

    7. 添加动作处理类,在左边Project窗口,点击src目录,右键选择新建,输入类名字建立新类,并在类中输入内容如下:

    
    import com.intellij.openapi.actionSystem.AnAction;
    import com.intellij.openapi.actionSystem.AnActionEvent;
    import com.intellij.openapi.ui.Messages;
    public class ReadDocument extends AnAction {
        @Override
        public void actionPerformed(AnActionEvent anActionEvent) {
            Messages.showDialog("慢慢的菜单","慢慢消息",new String[]{"OK"}, -1, null);
        }
    }
    

    第一步完成,动作设计已经完成,下一步考虑如何获得editor的内容。

    获得editor中的文本内容

    1. 获得编辑器对象
    2. 获得编辑器中的文档对象
    3. 获得文档对象内容
    4. 显示内容
      这一步完成后的效果

      直接在刚才的ReadDcoument中进行修改,最终样子如下
    import com.intellij.openapi.actionSystem.AnAction;
    import com.intellij.openapi.actionSystem.AnActionEvent;
    import com.intellij.openapi.actionSystem.CommonDataKeys;
    import com.intellij.openapi.editor.Document;
    import com.intellij.openapi.editor.Editor;
    import com.intellij.openapi.ui.Messages;
    public class ReadDocument extends AnAction {
        @Override
        public void actionPerformed(AnActionEvent anActionEvent) {
    
            //获得editor
            final Editor editor = anActionEvent.getRequiredData(CommonDataKeys.EDITOR);
            //获得编辑器中的文档对象
            final Document document = editor.getDocument();
            //获得编辑器内容
            String mytext=document.getText();
            Messages.showDialog(mytext,"当前editor中的内容",new String[]{"OK"}, -1, null);
        }
    }
    

    相关文章

      网友评论

        本文标题:一步一步学习android studio 插件开发(二)

        本文链接:https://www.haomeiwen.com/subject/cvgopttx.html