Git Product home page Git Product logo

e4macs's People

Contributors

mfeber avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

e4macs's Issues

"deactivate-window" after "open-declaration-other-window" changes to different file in original window

Win7, Kepler SR2, Emacs+ 4.1.2 (although Emacs+ Options 4.0.5).

I'm using the "Default" key binding scheme, and I've manually bound keys to the Emacs+ functions I use.

In my main Editor view, I'm viewing a Java unit test class, and there are 21 other tabs, although only 5 are visible (in addition to the one for the current class). Let's say that this is "FooTest.java".

I put my cursor on the type for a local variable, and I executed the key I have bound to "open-declaration-other-window". This split the editor view, putting the Java class containing the declaration for the reference in the bottom window ("Foo.java"), leaving the original "FooTest.java" class in the top window. The focus is in the bottom window.

This is fine so far.

I then execute the binding for "deactivate-window". The description of this function says "Deactivate (and join if previously split) window". I'm in the bottom window showing "Foo.java", so I expect this will remove the bottom window and restore viewing "FooTest.java" in the one remaining window.

This does remove the bottom window, but instead of now viewing "FooTest.java", I'm viewing "Foo.java", which was in the bottom window.

If I instead used "join-other-windows", the behavior is the same, although I believe this behavior is correct.

As I said, I'm not using the Emacs+ bindings. I'll do another test of this with a separate installation using the Emacs+ bindings.

describe-key on Linux thinks capslock mapped to control is still capslock

I have Emacs+ installed on both a Win7 box with Luna, and a Linux box with Mars. Otherwise, the Eclipse settings are identical. The other thing that is identical is that I have mapped (in some way) the CapsLock key to be an additional Control key. This is done on Windows with SysInternals Ctrl2Cap, and on Linux with TweakTool.

I have numerous bindings that have a prefix using at least the Ctrl key, which I press using the CapsLock key. These bindings all work fine (as far as I know) on both platforms. On the Win7 box, if I execute the "describe-key" function (whether manually or by binding) and then press one of those bindings, using the CapsLock key as the Ctrl key, it detects the proper key sequence and tells me what the binding is.

However, if I do the same thing on the Linux box, as soon as I touch the CapsLock key, it immediately responds with "CapsLock is unbound". And again, the bindings are still there, and work, but "describe-key" is confused.

As of platform 4.13, need manual import of "javax.inject"

As of platform 4.13, according to https://www.eclipse.org/eclipse/news/4.13/platform_isv.php#javax-injext (yes, the anchor name is misspelled, but that's it), the javax.inject package is now not automatically exported, so the classes that import classes in that package (Inject class) are getting compile errors. The fix is to add the following to the MANIFEST.MF file:

Import-Package: javax.inject;version="1.0.0"

I fixed this in my fork: https://github.com/davidmichaelkarr/e4macs .

KeyHandlerMinibuffer.checkKey gets compile error on "KeySequence.getInstance(keys)"

So I had an RCP Eclipse Photon installation. I cloned e4macs and tried to follow the build instructions. I immediately saw that the following line in KeyHandlerMinibuffer.checkKey is getting a compile error:

	trigger = KeySequence.getInstance(keys);

keys is a List. I see that in the version of KeySequence that I see, there is a "getInstance" method that takes a KeyStroke[], and KeyStroke extends Trigger, so it appears that this simply requires doing this:

	trigger = KeySequence.getInstance(keys.toArray(new KeyStroke[0]));

I don't know anything about the version changes that would have occurred since this was last built, or whether fixing this compile error will really fix anything. At least this change fixes the compile error.

Problems Remapping Java Format and Save on Mac

Hi Mark,

I this code still under active development/maintenance?

I installed all 4 Emacs+ plugins in my Eclipse Oxygen disto, including the Mac Command and Optional Mac Command plugins.
I tried to remap Format to Command+Shift+F and Save to Command+S but neither of the commands would work.
I can use "Meta-x format" to format code, but I could not get Command+Shift-F to work.
I remapped all instances of Format I could find in the preferences - Keys panel.
When using the default key mapping, I get a Format command that applies to Java source code, but the command is not there when using Emacs+ keybindings.

Similarly for the Save command. I can use Ctrl-x-s to save, but Command+S would not work.

I also tried to map Command+3 back to Quick Access but that did not work either.

Without the mac command key plugin, I can get the default Eclipse shortcuts using command to work as expected when using Emacs+ keybindings.
But in the actual emacs editor, I also use the command key as meta, and want the same behavior in Eclipse.

There are just a small set of original/default Eclipse shortcuts that I like, and would like to keep, like, for example, the Format code, save, Quick Access.
Any suggestions on how to get these shortcuts to work with Emacs+ keybindings.

Thanks,
Marcel,

Editor Splitting

The whole sub-series of C-x 2 commands does not function 3.4+. This is a result of the entire Eclipse interface being reworked and constitutes a known issue.

The publicly available HandySplit plugin, code available on GitHub at https://github.com/akikhtenko/HandySplit seems to mostly perform the operations. It might be worth looking in to it for a rewrite.

Plugin failure on activation

User drorbrill reports that the bug occurs when execution of "start(BundleContext)" function occurs in a non-UI thread during plugin activation (EmacsPlusActivator). I have not been able to recreate this, but since the fix should be harmless in the usual case, and given Eclipse's twisted nature, I have little doubt that it can occur when the conditions are right.

Kill ring performance problem

In some cases getting clipboard content can take a very long time (nothing to do with Emacs+ plugin).
Because the Kill ring feature in Emacs+ reads clipboard content even when the user did not activate a "paste" command, sometimes it can cause long freezes (see example below), even though the user did not attempt to use the "paste" command.

Is there a way to disable the Kill ring feature entirely?
Is there a way to reduce or avoid getting clipboard content unless the user actively wants to get content from it?

!ENTRY org.eclipse.ui.monitoring 4 0 2022-08-02 09:04:57.850
!MESSAGE UI freeze of 111s at 09:03:06.469
!SUBENTRY 1 org.eclipse.ui.monitoring 1 0 2022-08-02 09:04:57.850
!MESSAGE Sample at 09:04:28.908 (+82.439s)
Thread 'main' tid=1 (RUNNABLE)
!STACK 0
Stack Trace
at org.eclipse.swt.internal.gtk3.GTK3.gtk_clipboard_wait_for_contents(Native Method)
at org.eclipse.swt.dnd.Clipboard.gtk_clipboard_wait_for_contents(Clipboard.java:622)
at org.eclipse.swt.dnd.Clipboard.getContents(Clipboard.java:297)
at com.mulgasoft.emacsplus.KillRing.getClipboardText(KillRing.java:323)
at com.mulgasoft.emacsplus.KillRing.checkClipboard(KillRing.java:297)
at com.mulgasoft.emacsplus.KillRingListeners$StaticActivation$1.windowActivated(KillRingListeners.java:67)
at org.eclipse.ui.internal.Workbench$8.run(Workbench.java:1005)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.ui.internal.Workbench.fireWindowActivated(Workbench.java:1002)
at org.eclipse.ui.internal.WorkbenchWindow$6.shellActivated(WorkbenchWindow.java:2459)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:92)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5895)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1515)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1541)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)
at org.eclipse.swt.widgets.Shell.gtk_focus_in_event(Shell.java:1596)
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2406)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:6833)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:6197)
at org.eclipse.swt.internal.gtk3.GTK3.gtk_main_do_event(Native Method)
at org.eclipse.swt.widgets.Display.eventProc(Display.java:1565)
at org.eclipse.swt.internal.gtk3.GTK3.gtk_main_iteration_do(Native Method)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4578)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1154)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1045)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)
at org.eclipse.ui.internal.Workbench$$Lambda$281/0x0000000800dbacd0.run(Unknown Source)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at [email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at [email protected]/java.lang.reflect.Method.invoke(Method.java:568)
at app//org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at app//org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at app//org.eclipse.equinox.launcher.Main.run(Main.java:1467)
at app//org.eclipse.equinox.launcher.Main.main(Main.java:1440)

Set-mark cnt-e Does not Select

Small remnant from the otherwise resolved issue of cursor movements not highlighting (i.e. OS-selecting) text. For all but the following your advice about which emacs command to use was the fix.

When moving cursor from mark to end of line (set-mark--->cnt-e) no selection of mark--point occurs. In gnu emacs that selection is made.

Andreas

Cursor movement away from MARK does not select

  • OS info macOS Mojave (10.14.5)

  • Eclipse version and package:
    Eclipse IDE for JavaScript and Web Developers

     Version: 2019-12 (4.14.0)
     Build id: 20191212-1212
    

java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

Editor: Python pydev

  • Description.
    Moving cursor away from just-set mark does not highlight the evolving
    region. I.e. does not select. For example:

    cmd-space [set-mark]
    cmd-p [previous-line]

Should highlight from mark to new point. Note that a region is being
defined. For example, cnt-x cnt-x [swap-mark] will toggle between
point and mark.

Also selecting is important, b/c other functions seem to depend on
it.

Example1: <tab> will indent a selected (highlighted) region to the right. 
                 But if that region has no highlight, only the line at point
                is indented.
          
Example2: comment-region comments a highlighted region, but not a
          plain old region.
          
Example3: copy-to-register refuses to offer entry of a register
          name (letter), and instead complains about "No text
          selected"

Bind 'Backward History' to M-,

M-, is pop-tag-mark in Emacs. If you've jumped to the definition of a function and you want to jump back to where you were before, you'd use M-,.

Documentation

It would be very useful to have some basic documentation on the plugin e.g. for building for local use.

Does emacs+ do Lisp? Can I put macros in .emacs?

Possibly sounds like a dumb question but I've been going through all the docs on eclipse marketplace, google groups and github but it's still not clear. I assume I can't use my own .emacs file, but could this be used as a feature request?

Compile error in latest master branch

It appears that the update site has gone away, and I think it's been gone for a while. I'm guessing I'll have to remember how to build this locally again. I did this 3 years ago, but I don't remember the process, and I can't find notes on how to do it.

I see that when I checkout the master branch in the "Eclipse for committers" distro, there is a compile error in com.mulgasoft.emacsplus.execute.SelectionDialog:

	public SelectionDialog(Shell parent, ISelectExecute mini, ITextEditor editor) {
		// Europa compatible constructor
		super((Shell) null, PopupDialog.HOVER_SHELLSTYLE, false, false, false, false, null, null);
		this.editor = editor;
		this.minibuffer = mini;
	}

Saying:
The constructor PopupDialog(Shell, int, boolean, boolean, boolean, boolean, null, null) is undefined

It's saying that this constructor takes five booleans, not four. I could just add an additional "false", but I'm not certain of the consequences of that, and I'm unsure of the implications of the fact that this even has a compile error.

Assuming I get past this properly, I'm not sure of the steps to build this and construct a local update site.

Has Emacs+ become abandonware?

I noticed that the Emacs+ update site is gone, and the email address Mark used to answer also appears to be gone. Anyone know anything about this?

pop-tag-mark doesn't seem to be working

just updated to kepler and emacs+ 4.1.4. After open-declaration, pop-tag-mark, invoked either by M-* or by M-x pop-tag-mark seems to do nothing. Not sure where I should be looking for any kind of error output.

Eclipse Close override failure

Eclipse does not properly override the keybinding for the Close command in the defaultAcceleratorConfiguration with the keybinding for Copy in the emacsAcceleratorConfiguration.

split-window commands no longer work in 2019-09

I know this isn't being maintained anymore, but I guess I'll log this, in case Mark gets inspired again, or someone capable takes this over.

After upgrading from 2019-06 to 2019-09 today, I'm finding that "split-window-{vertically,horizontally}" now do nothing. There's nothing in the log. They just don't do anything. The more primitive "Toggle Split Editor" commands do work, but as described, those are only toggles, so you can only split the window once.

I do have the code loaded into a project in an RCP instance, so I suppose I could step through it if I knew what to look for, but I sure don't.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.