Copy IDEA Settings

We purchased AppCode for use by my team.  We are already well established IDEA users.  How do I copy all my settings such as keymaps, editor colors, command equivalents, etc, from IDEA to AppCode?  Also, I use a custom built emacs plugin in IDEA for some missing commands.  Is there any reason the plug-in will not be compatible with AppCode?  Essentially, I'm assuming that AppCode is leveraging all the same basic editing frameworks as IDEA and that everything that relates to the basics of editing code should work the same between the two apps.  Please let me know if my assumption is wrong.

8 comments
Comment actions Permalink

Paul,
to export the settings from IDEA use File->Export Settings.., after that in AppCode File->Import Settings...
As for the plugin, you should contact the plugin author: ze should make sure zis plugin is compatible with AppCode.

0
Comment actions Permalink

Anton,

  Thank you very much for the response.  What you suggested worked in that I was able to export and import the settings, but it didn't work in that the keymaps don't seem to have carried over into anything that AppCode recognizes.  I made sure after I imported the settings, that the Keymap was set to my custom emacs keymap.  However, none of my bindings work (control-a, control-e, etc, etc).  When I look at the Keymap in the Settings panel, except for three commands, none of the key bindings are there.  I've attached images comparing the bindings in the two apps.

Paul



Attachment(s):
IDEAKeymap.jpg
AppCodeKeymap.jpg
0
Comment actions Permalink

Paul,

we have investigated the problem. The problem here is that AppCode doesn't have Emacs keymap and when you expot the settings, only the difference with the default keymap is exported.
So, when you export your custom Emacs keymap from IDEA, only your changes are exported; when you import it into AppCode, these chenges are applied to the default keymap, not the Emacs keymap.

To workaround the problem you can take the keymap from the Emacs plugin and put it into /Users/anton/Library/Preferences/appCode10/keymaps/.
This should do the trick.

0
Comment actions Permalink

Anton,
     I also want to accomplish the same thing as Paul.  I have spoken with Paul and we are stuck a bit on your advice.  In this last bit of advice, if I understand it, you are instructing us to move the default Emacs.xml keybinding fileto ~/Library/Preferences/appCode10/keymaps/ before importing our settings, so that our custom emacs keybinding files 'overload' the base emacs bindings properly.  If indeed I have understood you correctly, where can I find the base Emacs.xml binding file that ships with IDEA (I am currently on 10, Paul is on 11).  I have not been able to locate it.

     Thanks.

- Eric

0
Comment actions Permalink

Eric, If you manually copy the keymap into ~/Library/Preferences/appCode10/keymaps/, wo do not need to import settings.
You can find the keymaps in 'IDEA.app/lib/resources.jar/idea/' folder.
Copy any keymap you want and remove <component>  </component> root tag from it so the root tag is <keymap>.

0
Comment actions Permalink

Didn't quite work.  I put both the Keymap_Emacs.xml file from the resources.jar file (less the outer component tags) and my EbEmacs.xml file from ~/Library/Preferences/IntelliJIdea10/keymaps into ~/Library/Preferences/appCode10/keymaps.  I then launched AppCode and changed my keymap to EbEmacs.  My bindings are there, but the inherited ones are not.  So I took a look if the file I copied over is still the same as the one used under Idea.  I did:

diff EbEmacs.xml ~/Library/Preferences/IntelliJIdea10/keymaps/EbEmacs.xml
2c2
< <keymap version="1" name="EbEmacs">
---
> <keymap version="1" name="EbEmacs" parent="Emacs">
3a4
>     <keyboard-shortcut first-keystroke="control INSERT" />
13a15
>     <keyboard-shortcut first-keystroke="shift INSERT" />
82a85
>     <keyboard-shortcut first-keystroke="control INSERT" />
110a114
>     <keyboard-shortcut first-keystroke="shift INSERT" />
155a160
>     <keyboard-shortcut first-keystroke="alt INSERT" />
205a211
>     <keyboard-shortcut first-keystroke="alt INSERT" />
eb@exeter (73) ~/Library/Preferences/appCode10/keymaps

Notice, that the 'parent' attribute was removed from the keymap tag.  I wanted to test how this change, among the others happened.  So I shut down appcode, copied EbEmacs.xml over again from the idea keymaps, and did a diff.  They were of course, the same.  Then I opened AppCode and tried to use C-n and C-p, which are emacs movement commands that should come from the Keymap_Emacs.xml, and they still don't work.  I did that diff again, and it appears that when reading the file, AppCode changes it.  Maybe it reads EbEmacs.xml before Keymap_Emacs.xml, and as such, when it sees the parent attribute set to Emacs, it has not read that yet, so it removes it from the EbEmacs.xml file as corrupt data?

0
Comment actions Permalink

Eric,

I've tried several workarounds but, unfortunatelly, neither worked - you cannot extend a not bundled keymap.
Though, you can copy the Keymap_Emacs.xml to ~/Library/Preferences/appCode10/keymaps, change it as I described previously and customize it in AppCode.

In the next bugfix update we'll bundle the Emacs keymap.

Regards,
Anton Makeev

0
Comment actions Permalink

Anton,
     Thanks for the effort.  I will look for it in the next release.

0

Please sign in to leave a comment.