`

Eclipse 插件开发 快捷键冲突(A conflict occurred for xxx)

阅读更多

问题:

 

Binding(CTRL+S,

ParameterizedCommand(Command(org.eclipse.ui.file.save,Save,

Save the current contents,

Category(org.eclipse.ui.category.file,File,null,true),

org.eclipse.ui.internal.handlers.SaveHandler@fbd1fc,

,,true),null),

org.eclipse.ui.defaultAcceleratorConfiguration,

org.eclipse.ui.contexts.window,,,system)

Binding(CTRL+S,

ParameterizedCommand(Command(cn.com.bankit.ide.bsp.navigator.command.shield,屏蔽 F2,

,

Category(org.eclipse.core.commands.categories.autogenerated,Uncategorized,Commands that were either auto-generated or have no category,true),

,

,,true),null),

org.eclipse.ui.defaultAcceleratorConfiguration,

org.eclipse.ui.contexts.window,,,system)

 

 

 

如何屏蔽掉Eclipse插件本身的快捷键,使自定义的快捷键功能有效。


1. 屏蔽所有快捷键 (这个方法显然是杀鸡取卵)


((IBindingService)PlatformUI.getWorkbench().getAdapter(IBindingService.class)).setKeyFilterEnabled(false);

PS.:这个能屏蔽所有的Binding 包括自定义的,这显然不合适。


2. 采用默认的ContextID:org.eclipse.ui.contexts.window。 这里有一个缺点,输入快捷键时,同时出现两个快捷键。

  在plugin.xml中实现:

   <extension

         point="org.eclipse.ui.bindings">

      <key

            commandId="org.xxx.SaveConfigHandler"

            contextId="org.eclipse.ui.contexts.window"

            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"

            sequence="CTRL+S">

      </key>

   </extension>


3. 屏蔽eclipse的快捷键,使自己的快捷键生效。(这就是所谓的走别人的路,让别人无路可走)

指定自定义ContextID,只有在该ContextID下快捷键才有效。

在plugin.xml中实现扩展点org.eclipse.ui.bindings

 <extension

         point="org.eclipse.ui.bindings">

      <key

            commandId="org.xxxx.SaveConfigHandler"

            contextId="cn.com.xxx.Context"

            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"

            sequence="F2">

      </key>

   </extension>

同时扩展:

   <extension

         point="org.eclipse.ui.contexts">

      <context

            id="cn.com.xxx.Context"

            name="MY Context"

            parentId="org.eclipse.ui.contexts.window">

      </context>

   </extension>

(以 CommonNavigatorView的F2为例,editor也是一样的道理。

重写起init方法如下:

    public void init(IViewSite site, IMemento memento) throws PartInitException

    {

        super.init(site, memento);

        ....

....

        IContextService contextService = (IContextService) getSite()

                .getService(IContextService.class);

        contextService.activateContext("cn.com.xxx.Context");

    }

分享到:
评论

相关推荐

    Eclipse SVN插件 Eclipse SVN插件

    Eclipse SVN插件是开发人员在使用Eclipse集成开发环境时,用于版本控制的重要工具,主要功能是与Subversion(SVN)服务器进行交互,实现代码的版本管理。本篇文章将详细阐述Eclipse SVN插件的相关知识点,包括其安装...

    EclipseSVN冲突详细解决方案.docx

    使用EclipseSVN冲突解决方案可以有效地解决文件冲突问题,提高开发效率和团队协作的effectiveness。 技术要点: 1. 文件冲突的定义和分类 2. 解决冲突的四种方式 3. EclipseSVN冲突解决方案的优点 EclipseSVN冲突...

    IDEA的快捷键设置成和eclipse一样的快捷包.zip

    IntelliJ IDEA(简称IDEA)和Eclipse都是广泛使用的Java开发IDE,它们各自拥有独特的功能和快捷键设置。有时候,从Eclipse转向IDEA的开发者可能希望保持熟悉的快捷键习惯,因此将IDEA的快捷键设置成与Eclipse相同会...

    eclipse 插件 svn1.8(site-1.8.22)

    Eclipse SVN 1.8插件是专门为Eclipse集成开发环境设计的一款版本控制系统插件,用于支持Subversion(SVN)1.8版本的版本控制功能。Subversion是一款开源的分布式版本控制系统,允许用户跟踪文件和目录的更改,并在...

    eclipse cvs 插件

    Eclipse CVS插件是开发人员在使用Eclipse集成开发环境时进行版本控制的重要工具,它集成了CVS(Concurrent Versions System)系统,使得开发者能够方便地管理代码库,实现团队间的协同开发。CVS是一种广泛使用的源...

    eclipse快捷键

    快捷键在Eclipse中扮演着至关重要的角色,它们极大地提升了开发人员的编程效率,减少了鼠标操作,使得开发者能够更加专注于代码编写。以下是一些关键的Eclipse快捷键及其应用: 1. **代码编辑快捷键**: - `Ctrl +...

    SVN(一)客户端及eclipse-svn插件用法

    Eclipse-svn插件是Eclipse IDE的一个扩展,它使开发者可以直接在Eclipse内部进行SVN操作,而无需离开开发环境。 首先,安装eclipse-svn插件是使用SVN的关键步骤。通常,这可以通过Eclipse的“帮助”-&gt;“安装新软件...

    SVN解决文件冲突conflict的方法_类文件冲突

    - 解决冲突后,用户A或B需要删除这些冲突标记,并用合并后的版本替换它们。然后,使用`svn resolved file1.txt`命令告诉SVN冲突已解决。 - 最后,用户A或B可以再次提交更改,确保在提交前使用`svn diff file1.txt`...

    最新Windows下SVN服务器、SVN客户端(带汉化语言包)和Eclipse上SVN插件安装大全

    1. **Eclipse集成SVN**:Eclipse是一款流行的Java开发IDE,通过安装Subversive或Subclipse插件可以实现对SVN的支持。推荐使用Subversive,因为它与Eclipse的集成度更高。在Eclipse的“帮助”&gt;“Eclipse Marketplace...

    eclipseSVN插件

    5. **冲突解决(Conflict Resolution)**:在多个人同时修改同一文件时,如果发生冲突,Eclipse SVN插件会提供帮助解决冲突的工具。 6. **查看差异(Diff)**:比较本地文件和版本库中的文件差异,便于理解改动内容。 7....

    eclipse插件svn图标详细含义(全)

    23. 有目录树冲突的文件:file that has a tree conflict图标表示该文件已经发生目录树冲突,需要解决冲突。 24. 引用外部项目的文件:file that is external to the project图标表示该文件引用外部项目,不能提交...

    Eclipse SVN插件

    Eclipse SVN插件是开发人员在Eclipse集成开发环境中用于版本控制的重要工具,它使得开发者能够无缝地与Subversion(SVN)服务器进行交互。这个插件极大地提升了代码管理的效率,支持版本回退、分支合并、冲突解决等...

    SVN插件(Eclipse)

    在Eclipse集成开发环境中,为了方便开发者进行版本控制操作,通常会安装SVN插件。本篇文章将详细介绍Eclipse中的SVN插件及其相关知识点。 1. **SVN的基本概念** - 版本控制:SVN的主要功能是跟踪文件和目录的变更...

    eclipse SVN 插件

    Eclipse SVN插件是开发人员在使用Eclipse集成开发环境时进行版本控制的重要工具,它使得Eclipse能够与Subversion(SVN)服务器无缝协作。这个插件允许开发者执行诸如检出、提交、更新、合并等SVN操作,极大地提高了...

    Qt全局快捷键2.zip

    在本文中,我们将深入探讨如何在Qt环境中实现全局快捷键功能,这在开发跨平台的桌面应用程序时非常有用。Qt是一个强大的C++图形用户界面工具包,它提供了丰富的功能,包括创建可自定义的快捷键,即使软件最小化也能...

    svn 1.4.6 eclipse plugin

    "svn 1.4.6 eclipse plugin"便是这样的插件,它使得开发者可以直接在Eclipse内部进行SVN操作,如检出、提交、更新、解决冲突等,极大地提高了开发效率。 1. **安装过程** 安装SVN 1.4.6 Eclipse插件通常涉及以下...

    svn插件,可集成eclipse,myeclipse

    Eclipse的SVN插件,如Subclipse或Subversive,使得开发者可以直接在Eclipse界面中执行常见的SVN操作,如检出、提交、更新、解决冲突等,大大提高了开发效率。Subclipse是基于Apache的Subversion库构建的,而...

    eclipse svn集成客户端SVN

    Eclipse SVN集成客户端是开发人员在使用Eclipse IDE时进行版本控制的重要工具,它使得开发者能够在熟悉的开发环境中无缝地与Subversion(SVN)服务器进行交互。Subversion是一款开源的版本控制系统,它允许团队协作...

    Egit For Eclipse/MyEclipse

    Egit是Eclipse基金会开发的一个强大的开源插件,专为集成Git版本控制系统到Eclipse和MyEclipse IDE而设计。Git是一种分布式版本控制系统,广泛应用于软件开发中,因为它提供了高效的数据管理和灵活的工作流。Egit的...

    Hierarchical Graph Models for Conflict Resolution 2015

    Hierarchical Graph Models for Conflict Resolution 冲突消解的层次图模型

Global site tag (gtag.js) - Google Analytics