Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Support for VScode keymap in Netbeans IDE for windows and mac #6458 #8200

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

rothardo
Copy link
Contributor

Description:

This is a pull request to facilitate the migration of keybindings from VSCode to NetBeans, aiming to ensure a smooth transition for users without altering their familiar keybinding setup.

Fixes the Issue

Add a keymap for VS Code #6458

Key changes:

Added new VSCode keymap profile for NetBeans
Mapped common VS Code keyboard shortcuts to equivalent NetBeans actions
Implemented platform-specific keybindings for Windows and macOS
Preserved NetBeans' core functionality while matching VS Code's keyboard interaction patterns

Objective:

Enable users migrating from VSCode to NetBeans to retain their existing keybindings and workflows effectively.

Attachments:

  • Screenshot of the updated NetBeans keymap reflecting the VSCode keybindings.
    image

By opening this pull request you confirm that, unless explicitly stated otherwise:

  • The changes are all your own work, and you have the right to contribute them.
    Yes
  • The contributions are made solely under the terms and conditions of the Apache License 2.0 (see section 5 of the license for more information).
    Yes

@rothardo
Copy link
Contributor Author

Hi @pgebauer , please review and merge this PR, or @mbien please ask someone who knows more about keybinds to review this PR please.

I think most of it hits off correctly as far as I have tested those.

@mbien mbien added Editor VSCode Extension [ci] enable VSCode Extension tests ci:dev-build [ci] produce a dev-build zip artifact (7 days expiration, see link on workflow summary page) labels Feb 13, 2025
@apache apache locked and limited conversation to collaborators Feb 13, 2025
@apache apache unlocked this conversation Feb 13, 2025
@mbien mbien added this to the NB26 milestone Feb 13, 2025
Copy link
Member

@mbien mbien left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gave it a try and found some problems, comments inline.

the log had also the following warnings:

WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@4bf87ceb[MultiFileObject@f2d5e94[Keymaps/VSCode/A-CLICK.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@754b0ca[MultiFileObject@4efc93aa[Keymaps/VSCode/A-DOWN.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@355a4abf[MultiFileObject@6b1dbfc4[Keymaps/VSCode/A-UP.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@2cba2af4[MultiFileObject@7e6b7bf5[Keymaps/VSCode/C-BACKQUOTE.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@18e147e0[MultiFileObject@366812ea[Keymaps/VSCode/C-C.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@1443495c[MultiFileObject@10766f33[Keymaps/VSCode/C-F.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@776fb9bb[MultiFileObject@33478a72[Keymaps/VSCode/C-G.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@3d403d2f[MultiFileObject@60fd273[Keymaps/VSCode/C-H.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@4f31fa3d[MultiFileObject@38245005[Keymaps/VSCode/C-P.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@1c4cb360[MultiFileObject@540c0364[Keymaps/VSCode/C-SPACE.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@6db935ac[MultiFileObject@17e6d57[Keymaps/VSCode/C-X.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@41de9743[MultiFileObject@7657f567[Keymaps/VSCode/CA-DOWN.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@223c2f6[MultiFileObject@2f741014[Keymaps/VSCode/CA-UP.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@4d9dc522[MultiFileObject@8b76542[Keymaps/VSCode/CS-BACKQUOTE.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@58f73808[MultiFileObject@1c813bf8[Keymaps/VSCode/CS-N.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@481eaaab[MultiFileObject@1f6aa5b4[Keymaps/VSCode/CS-P.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@56da7e1c[MultiFileObject@7ba40de4[Keymaps/VSCode/CS-SPACE.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@3dd1d286[MultiFileObject@319e2f91[Keymaps/VSCode/F10.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@38b17d17[MultiFileObject@5868c3d7[Keymaps/VSCode/F12.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@1ad46175[MultiFileObject@3aa21979[Keymaps/VSCode/F5.shadow]]
WARNING [org.netbeans.modules.options.keymap.LayersBridge]: Invalid shortcut: org.openide.loaders.BrokenDataShadow@15c264d6[MultiFileObject@4b7a5b3c[Keymaps/VSCode/F9.shadow]]

@@ -1096,93 +1096,181 @@
<attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-UndoAction.instance"/>
</file>
</folder>
<folder name="VSCode">
<attr name="SystemFileSystem.localizingBundle" stringvalue="org.vscode.defaults.Bundle"/>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this needs to be org.netbeans.modules.defaults.Bundle

Cannot load org.vscode.defaults.Bundle for MultiFileObject@3bbce25e[Keymaps/VSCode] defined by [jar:file:/run/media/mbien/500GB%20860EVO/nb_data/dl/13313143338/netbeans/ide/modules/org-netbeans-modules-defaults.jar!/org/netbeans/modules/defaults/mf-layer.xml]
Caused: java.util.MissingResourceException: No such bundle org.vscode.defaults.Bundle
	at org.openide.util.NbBundle.getBundle(NbBundle.java:438)
	at org.openide.util.NbBundle.getBundle(NbBundle.java:370)
[catch] at org.netbeans.modules.openide.filesystems.FileSystemStatus.annotateName(FileSystemStatus.java:71)
	at org.netbeans.modules.openide.filesystems.FileSystemStatus.annotateName(FileSystemStatus.java:58)
	at org.netbeans.modules.options.keymap.LayersBridge.refreshKeymapNames(LayersBridge.java:241)
	at org.netbeans.modules.options.keymap.LayersBridge.getProfiles(LayersBridge.java:262)
	at org.netbeans.modules.options.keymap.KeymapModel$PL.run(KeymapModel.java:230)
	at org.netbeans.modules.options.keymap.KeymapModel.waitFinished(KeymapModel.java:744)
	at org.netbeans.modules.options.keymap.KeymapModel.ensureProfilesLoaded(KeymapModel.java:314)
	at org.netbeans.modules.options.keymap.KeymapModel.getCurrentProfile(KeymapModel.java:394)
	at org.netbeans.modules.options.keymap.MutableShortcutsModel.getCurrentProfile(MutableShortcutsModel.java:181)
	at org.netbeans.modules.options.keymap.KeymapPanel.refreshProfileCombo(KeymapPanel.java:391)
	at org.netbeans.modules.options.keymap.KeymapPanel.update(KeymapPanel.java:359)
	at org.netbeans.modules.options.keymap.KeymapPanelController.update(KeymapPanelController.java:50)
	at org.netbeans.modules.options.CategoryModel$Category.update(CategoryModel.java:369)
	at org.netbeans.modules.options.OptionsPanel.setCurrentCategory(OptionsPanel.java:229)
	at org.netbeans.modules.options.OptionsPanel.access$300(OptionsPanel.java:99)
	at org.netbeans.modules.options.OptionsPanel$CategoryButton.mouseReleased(OptionsPanel.java:1264)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6621)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3404)

Comment on lines +90 to +94
<bind actionName="fix-imports" key="C-DOT"/>

<!-- Refactoring -->
<bind actionName="rename" key="F2"/>
<bind actionName="refactor-quickmenu" key="C-DOT"/>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

C-DOT doesn't appear to be a valid keystroke, what would work is C-PERIOD

also: the same keystroke is used for two refactoring actions which is not ideal

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci:dev-build [ci] produce a dev-build zip artifact (7 days expiration, see link on workflow summary page) Editor VSCode Extension [ci] enable VSCode Extension tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants