Coder Social home page Coder Social logo

anb0s / easyshell Goto Github PK

View Code? Open in Web Editor NEW
108.0 15.0 14.0 13.23 MB

EasyShell - This Eclipse plugin allows to open a shell window or file manager from the popup menu in the navigation tree or editor view. Additionally it is possible to run selected file in the shell, copy file or directory path or run user defined external tools. Key shortcuts and multiple selections are also supported!

Home Page: http://anb0s.github.io/EasyShell

License: Eclipse Public License 2.0

Java 92.46% HTML 5.92% CSS 0.31% XSLT 1.29% Shell 0.01% Batchfile 0.01% PowerShell 0.01%
eclipse eclipse-plugin shell execute explore clipboard bash powershell git msys2

easyshell's Introduction

- Project is discontinued and not maintained anymore!

EasyShell

Version Issues Chat @ gitter build License

This Eclipse plugin allows to open a shell window or file manager from the popup menu in the navigation tree or editor view. Additionally it is possible to run selected file in the shell, copy file or directory path or run user defined external tools. Key shortcuts and multiple selections are also supported!

Installation:

Eclipse Markeplace: https://marketplace.eclipse.org/content/easyshell

Drag to your running Eclipse* workspace. *Requires Eclipse Marketplace Client

OR

Use update site: https://anb0s.github.io/EasyShell

OR

Download EasyShell from GitHub OR Download EasyShell from SourceForge Download EasyShell

extract it to "eclipse\dropin" folder and restart.

Features:

The plugin is platform independent in principal. It just launches a (configurable) system command to open the shell, file explorer or other user defined command. It also copies path etc. to clipboard. Just open context menu for an Eclipse editor or selected resource in some view:

context_menu_windows context_menu_Linux

Keyboard-shortcuts:

ATTENTION For EasyShell v2.2 and newer all shortcuts are starting with Alt + E and after releasing one of the letters A, E, C, D, X, O, R, U must be used:

main_menu_dialog_windows

Alt + E, A: Main popup menu shows all commands and multiple commands can be selected (EasyShell v2.1 and older: Alt + E)

multi_selection_dialog_windows multi_selection_dialog_linux

Alt + E, E: Main popup menu shows all commands and one commands can be directly selected (EasyShell v2.1 and older: Alt + Shift + E)

popup_menu_windows

Shortcuts that executes the command directly if only one defined or opens a popup menu like Alt + E, E reduced for category:

Alt + E, O: Open - open or show in shell

popup_menu_linux

Alt + E, R: Run - execute in shell

Alt + E, X: Explore - open and select in file browser

Alt + E, C: Clipboard - copy to clipboard

Special and not available if no user defined categories are available:

Alt + E, U: User - user defined category

Special and not available for all OS:

Alt + E, D: Default - open with default application

Supported OS and commands:

The following platform, shell combinations and tools are supported as selections available in the preferences page. The user can define own commands and menues or just adapt the predefined ones!

Windows:

Linux:

MAC OS X

  • Terminals
    • Open
    • Terminal
    • iTerm
  • File Browsers
    • Finder

All OS

  • Open with / Edit
    • Eclipse - Full Path : line number
  • Copy to clipboard:
    • Full Path
    • Full Path Unix (@Windows)
    • Qualified Name
    • ... more configurable...

If path to your tool is not added to PATH variable, please add it or adapt the command in EasyShell!

Preferences:

preferences_general

preferences_menu

preferences_menu_edit

preferences_menu_edit_filter

preferences_menu_edit_content_assist

But you can configure any shell or command you like as long as you can figure out how to run a command to open the shell with given parameters or execute the tool you want.

preferences_command

preferences_command_new_content_assist

The following substitution variables are available for building the command:

  • ${easyshell:resource_loc} = absolute path of file or directory
  • ${easyshell:resource_name} = name of file or directory
  • ${easyshell:resource_basename} = name of file without extension
  • ${easyshell:resource_extension} = extension of file name (without '.')
  • ${easyshell:resource_path} = relative path of file or directory (to workspace)
  • ${easyshell:resource_loc_path} = relative location path of file or directory (to workspace)
  • ${easyshell:resource_project_path} = relative path of file or directory (to project)
  • ${easyshell:resource_project_loc_path} = relative location path of file or directory (to project)
  • ${easyshell:resource_line_number} = line number (within view or editor)
  • ${easyshell:selected_text_start_line} = selected text start line (within view or editor), it's equal to ${easyshell:resource_line_number}
  • ${easyshell:selected_text_end_line} = selected text end line (within view or editor)
  • ${easyshell:selected_text_length} = selected text length (within view or editor)
  • ${easyshell:selected_text_offset} = selected text offset (within view or editor)
  • ${easyshell:selected_text} = selected text (within view or editor)
  • ${easyshell:container_loc} = absolute path of file directory or directory itself
  • ${easyshell:container_name} = name of file directory or directory itself
  • ${easyshell:container_path} = relative path of file directory or directory itself (to workspace)
  • ${easyshell:container_loc_path} = relative location path of file's parent directory or directory itself (to workspace)
  • ${easyshell:container_project_path} = relative path of file's parent directory or directory itself (to project)
  • ${easyshell:container_project_loc_path} = relative location path of file's parent directory or directory itself (to project)
  • ${easyshell:parent_loc} = absolute path of parent directory, for files it's equal to ${easyshell:container_loc}
  • ${easyshell:parent_name} = name of parent directory, for files it's equal to ${easyshell:container_name}
  • ${easyshell:parent_path} = relative path to workspace of parent directory, for files it's equal to ${easyshell:container_path}
  • ${easyshell:parent_loc_path} = relative location path of parent directory (to workspace); for files it's equal to ${easyshell:container_loc_path}
  • ${easyshell:parent_project_path} = relative path of parent directory (to project); for files it's equal to ${easyshell:container_project_path}
  • ${easyshell:parent_project_loc_path} = relative location path of parent directory (to project); for files it's equal to ${easyshell:container_project_loc_path}
  • ${easyshell:project_loc} = absolute path of project
  • ${easyshell:project_name} = name of project
  • ${easyshell:project_path} = relative path to workspace of project
  • ${easyshell:project_loc_name} = location name (folder) of project
  • ${easyshell:project_parent_loc} = absolute path of project's parent
  • ${easyshell:workspace_loc} = absolute path of workspace
  • ${easyshell:workspace_loc_name} = location name (folder) of workspace
  • ${easyshell:windows_drive} = drive letter of file or directory on Windows
  • ${easyshell:qualified_name} = full qualified (class) name
  • ${easyshell:line_separator} = line separator, e.g. '\n' (Unix) or '\r\n' (Windows)
  • ${easyshell:path_separator} = path separator, e.g. ':' (Unix) or ';' (Windows)
  • ${easyshell:file_separator} = file separator, e.g. '/' (Unix) or '\' (Windows)
  • ${easyshell:script_bash} = Bash script (internal)
  • and all other available variables in Eclipse

The following substitution variables are available for building the menu name:

  • ${easyshell:command_category} = command category
  • ${easyshell:command_type} = command type
  • ${easyshell:command_name} = command name
  • ${easyshell:command_os} = command operating system
with-Eclipse logo

easyshell's People

Contributors

anb0s avatar andboss avatar bananeweizen avatar jpstotz avatar twwwt 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  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  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  avatar  avatar  avatar  avatar

Watchers

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

easyshell's Issues

[v2.0] prepare release

prepare release v2.0

  • new license: EPL
  • new update site (composite with legacy EasyShell 1.x and 2.x)
  • update project description: new features, how to use, how to migrate from 1.x
  • update sourceforge binaries and close all issues there
  • update Eclipse Marketplace

implement generic tool and command (preset) definition

We need a generic way to define tools:

  • name
  • UUID
  • executable
  • search paths (user may override or extend them)
  • available for OS (Windows, Linux, Mac OS X etc.)
  • supported command types (Open, Run, Explore etc.)
  • available for resources (files, folders or both)
  • available for number of resources (mostly for one resource, but may be in case of compare tools 2 or 3 resources must be selected or stored before, see #41 )

Presets or commands can re-use tools defined above:

  • name
  • UUID
  • used tool (by name or UUID)
  • used tool command type
  • used tool number of ressources
  • ...

More to be defined later...

[v2.0] add popup menu with key binding support

If one uses key binding to execute a tool, we can have now more then one tool for each category (open, explore etc.). So show an popup menu in this case and allow to select the right tool quickly with keyboard. E.g. with numbers (1, 2) or just with same key combination to cycle over the tools and execute with space or enter keys...

add ROXTerm to linux presets

copied from: https://sourceforge.net/p/pluginbox/feature-requests/26/

LXLE Distribution: http://wiki.lxle.net/doku.php
ROXTerm 2.8.2: http://roxterm.sourceforge.net/index.php?page=guide&lang=en#CommandlineOptions
$ roxterm --help
Usage:
roxterm [OPTION...]
Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gtk Show GTK+ Options
Application Options:
-u, --usage Show brief usage message
-d, --directory=DIRECTORY Set the terminal's working directory
--geometry=GEOMETRY Set size and/or position of terminal
according to X geometry specification
--appdir=DIRECTORY Application directory when run as a ROX
application
--show-menubar Show the menu bar, overriding profile
--hide-menubar Hide the menu bar, overriding profile
-p, --profile=PROFILE Use the named profile
-c, --colour-scheme=SCHEME Use the named colour scheme
--color-scheme=SCHEME Use the named colour scheme
(same as --colour-scheme)
-s, --shortcut-scheme=SCHEME Use the named keyboard shortcut scheme
-m, --maximise Maximise the window, overriding profile
--maximize Synonym for --maximise
-f, --fullscreen Make the initial terminal take up the whole
screen with no window furniture
-z, --zoom=ZOOM Scale factor for terminal's fonts
(1.0 is normal)
--separate Use a separate process to run this terminal
--replace Replace any existing process as ROXTerm's
D-BUS service provider
-T, --title=TITLE Set window title
-n, --tab-name=NAME Set tab name
--tab Open a tab in an existing window instead of
a new window if possible
--fork Fork into the background even if this is the first instance
--disable-sm Disable session management
--role=NAME Set X window system 'role' hint
--no-geometry Don't set window geometry hints. This is a workaround for https://bugzilla.gnome.org/show_bug.cgi?id=649680
-e, --execute Execute remainder of command line inside the
terminal. Must be the final option.
--display=DISPLAY X display to use

add linux 'nemo' file browser

copied from: https://sourceforge.net/p/pluginbox/feature-requests/18/

x:~$ nemo --help
Aufruf:
nemo [OPTION …] [Adresse …]
Browse the file system with the file manager
Hilfeoptionen:
-h, --help Hilfeoptionen anzeigen
--help-all Alle Hilfeoptionen anzeigen
--help-gtk GTK+-Optionen anzeigen
Anwendungsoptionen:
-c, --check Eine Reihe schneller Selbsttests durchführen.
--version Die Versionsnummer des Programms anzeigen.
-g, --geometry=GEOMETRIE Das erste Fenster mit den angegebenen Ausmaßen (z.B.: 900x600) erstellen.
-n, --no-default-window Nur für ausdrücklich angegebene Adresse die Fenster erstellen.
--no-desktop Den Schreibtisch nicht verwalten (die Einstellungen im Einstellungsdialog ignorieren).
-q, --quit Nemo beenden.
--display=ANZEIGE X-Anzeige, die verwendet werden soll

"cd" cannot be used/called like a stand-alone program in configurations under

copied from: https://sourceforge.net/p/pluginbox/bugs/20/

Version 1.4.1 of the plugin was installed via the Eclipse Marketplace.
The OS is Linux (openSUSE 12.3 and 13.1, but will apply to all standard Linux distros).
Eclipse is 4.3 (Kepler) with latest updates installed.
"cd" cannot be used like shown in the configuration for CDE. cd is a shell built-in not a standalone command. That is not a CDE speciality, but also valid for all configurations using a standard xterm/rxvt/uxterm.
The error is reported as:
eclipse.buildId=4.3.0.M20130911-1000
java.fullversion=JRE 1.7.0 IBM J9 2.6 Linux amd64-64 20120809_118929 (JIT enabled, AOT enabled)
J9VM - R26_Java726_SR2_20120809_0948_B118929
JIT - r11.b01_20120808_24925
GC - R26_Java726_SR2_20120809_0948_B118929
J9CL - 20120809_118929
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=de_DE
Framework arguments: -product org.eclipse.epp.package.rcp.product -showlocation
Command-line arguments: -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.rcp.product -showlocation
Error
Thu Feb 06 09:23:59 CET 2014
java.io.IOException: Cannot run program "cd": error=2, Datei oder Verzeichnis nicht gefunden
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1040)
at java.lang.Runtime.exec(Runtime.java:626)
at java.lang.Runtime.exec(Runtime.java:494)
at com.tetrade.eclipse.plugins.easyshell.actions.EasyShellAction.run(EasyShellAction.java:173)
at com.tetrade.eclipse.plugins.easyshell.command.EasyShellCommand.execute(EasyShellCommand.java:39)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:290)
[...]

EasyShell v1.4.2 cannot be installed in Eclipse Neon(4.6.0M5)

Error message:

Cannot complete the install because one or more required items could not be found.
Software being installed: Easy Shell Feature 1.4.2 (com.tetrade.eclipse.plugins.easyshell.feature.feature.group 1.4.2)
Missing requirement: Easy Shell Feature 1.4.2 (com.tetrade.eclipse.plugins.easyshell.feature.feature.group 1.4.2) requires 'org.eclipse.core.runtime.compatibility 0.0.0' but it could not be found

My configuration: JDK 8, Mac OS X 10.11.3

add linux 'thunar' file browser

copied from: https://sourceforge.net/p/pluginbox/feature-requests/24/

thunar --help
Usage:
thunar [OPTION...] [FILES...]
Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gtk Show GTK+ Options
Application Options:
-B, --bulk-rename Den Bulk-Rename-Dialog öffnen
--daemon Als Hintergrundprozess starten
-q, --quit Einen laufenden Prozess von Thunar beenden
-V, --version Programmversion anzeigen
--display=DISPLAY X display to use

Update Site Not Reachable

Hi, apparently the update site is not reachable anymore. SourceForge had an outage a couple of weeks ago could this be the cause? Maybe publishing the update site on github might be an alternative.

[v2.0] issues found in beta 1

I need help with testing of the next test release beta 1 (2.0.0.yx)

@electrotype Thank You for your help! I very much appreciate it!

  • Opening the edition window for an existing entry changes its name back to the original one.
    • *Bug: the setDefaultName(true) should not be executed in this case --> fixed in beta 2, see #54 *
  • Adding a new entry sometimes changes the name of the other existing entries back to their original one. I'm not sure when this occures, but I'm 100% sure I've seen it.
    • *Bug: the setDefaultName(true) should not be executed in this case --> fixed in beta 2, see #54 *
  • It would be nice if the division of the panel on the main window was draggable/movable (between the "Name" part and the "Command" part)
    • Enhancement: you can resize the preference page and it will resize the table proportionally --> but will investigate
  • I would maybe rename the "type" option to "icon". The name "type" kind of suggests it may have an effect on the command when, in fact, it only changes the display icon.
    • Yes, you are right and i want to add an icon selection left to the type. The type itself is like a category of the command and i want to show the predefined menus, commands and tools in categories (tree) and may be to create sub-menus from categories and also show pop-menu per category with defined Key-Shortcuts for each category; so the intention was more then just an icon --> i will think abut it again...
  • I wouldn't automatically prefix the "menu name" with the "type" when exiting the "Edit existing command". For example, if I name my command "test", the menu name becomes "Run: test". At least I can edit this menu name back to "test" if I want, but still...
    • *Yes, i have same thoughts and have an idea (prototype implementation) described in issue #49 -- > fixed in beta 2, see #54 *
  • You probably should remove the "?" (Help) buttons if there is no information when you click them.
    • Yes, i wanted to add an interactive help in the dialogs, but will do it later - it's hard for developers to write user documentation ;)

[v2.0] add content assist to tool / presets definition

In v2.0 we support eclipse variables like:
{0} == ${easyshell:drive}
{1} == ${easyshell:container_loc}
{2} == ${easyshell:resource_loc}
{3} == ${easyshell:resource_name}
{4} == ${easyshell:project_name}

Add possibility to add (select) predefined variable to the command.

EasyShell not compatible with new Eclipse Neon

Eclipse Neon is released yesterday.
But EasyShell can't installed nor used anymore.

Missing requirement: Easy Shell Feature 1.4.2 (com.tetrade.eclipse.plugins.easyshell.feature.feature.group 1.4.2) requires 'org.eclipse.core.runtime.compatibility 0.0.0' but it could not be found

Seems the latest EasyShell release dates from 2014, so I guess this project is dead? So as it doesn't work anymore, I guess that's the end of it?
A shame. Well, time to switch to alternative similar plugins instead...

ability to put the items in the main menu not in the "EasyShell" sub-menu

copied from: https://sourceforge.net/p/pluginbox/feature-requests/15/

Copied from Reviews at https://marketplace.eclipse.org/content/easyshell
Very nice
Submitted by Alex L on Tue, 07/09/2013 - 04:42
A very nice and useful plugin. I have 2 suggestions though:

  1. [see https://sourceforge.net/p/pluginbox/feature-requests/14/]
  2. the ability to put the items in the main menu not in the "Easy Shell" sub-menu, for even quicker access.
    Thanks!

problem installing on Eclipse MARS

Problem:

  1. When installing the plugin via Eclipse Market Place or via Update Site I get this error:
    No repository found at http://anbos.de/eclipse/pluginbox-updatesite.

Environment

eclipse.buildId=4.5.0.I20150603-2000
java.version=1.8.0_51
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments: -product org.eclipse.epp.package.dsl.product
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.dsl.product

add support for external diff and merge tools

Add presets for diff and merge tools, like KDiff3, WinMerge, Beyond Compare, Meld etc.
May be possible to make some special functions like store path for left, right, base etc. and call compare then, also for directories and files...

Compatibility Issue with Neon-M7

I've tried to install EasyShell into Eclipse Neon M7. The first attempt failed due to an dependency issue: it needs the mars update site as well to find all required bundles. I believe the eclipse compatibility plugins are the one missing on the neon update site in this case.
After installing it using the additional site i have issues using EasyShell:

  • It doesn't show up in the popup menus
  • I cannot open the preference page of the feature (via window -> preferences -> EasyShell)

These issues apply to Windows 7 / X64 as well as Gentoo Linux / Amd 64

[v2.0] issues found in early pre-release

See issues found with first patch commited to v2_0 branch, see issue #45 comments from electrotype:

  1. There is a NPE if you create an item and then change its "type" to "Other" (and you click "OK")
  2. Would be nice to list the new names to use as arguments since "{1}", "{2}", etc. don't work anymore.
  3. Another small bug: when you click the "Edit" button for an item, its "type" is always reset to "Open".

Show EasyShell entry on maven dependencies

When working with maven based java projects, it sometimes is necessary to jump to the jars of a dependency in the local maven repository. It would be nice if the context menu entry would show up in the package explorer for entries under "maven dependencies" so one can use the "Explore..." function.

Only have - Copy Path option

OS X El Capitan
On Eclipse Mars 4.5.1 don't have all option from menu, only have one Copy Path.
On Eclipse Luna everithing work as expected.

screen shot 2015-10-07 at 10 17 59 am

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.