jEdit Community home jEdit Community Wiki > Main > TWiki Users > Alex Kli > ImprovingJeditLauncher jEdit Community Wiki webs:
Main | Plugins | Know | TWiki | Sandbox
Main . { Whats New | Users | Groups | Changes | Index | Search | Go }

jEditLauncher

What is it?

jEditLauncher is a set of tools for starting jEdit and integrating it into the shell environment of the operating systems. (Microsoft Windows currently being the most important)

TODO

Priority: 1 = highest, 5 = smallest

Current State

5. July 2004

Martin:

COM Server

Jedit launcher:

25. June 2004, 7am

Brian Hks released a completely different version of the jedit launcher smile See

http://www.activeclickweb.com/java/jedit for details.

24. June 2004, 6pm

Iīm proud to present first alpha release of the new jedit launcher:

http://www.martin-fischbach.de/jeditlauncher/jedit_bin.zip (binary)

http://www.martin-fischbach.de/jeditlauncher/jedit_source_ms_visual_c.zip (source)

Extract achieve and read readme.txt smile

Please let me know your comments!

24. June 2004, 6am

At the moment I (Martin) am implementing the jedit.exe as described below. (using Visual C++, with as less Microsoft specific stuff as possible). Apart from registry stuff and some little missing features the new jeditlauncher is nearly finished. As soon as Iīm really finished with that Iīll post jedit.exe and source here! If anybody wants sources or wants to contribute directly please email me!

Brian Hawkins has had some fine ideas about the new launcher. As far as possible they are integreted on this page under category "Design". (Brian, plz fill in missing stuff! Are you implementing something at the moment?)

whorfin tries to build the launcher from a java program, which is natively compiled (no java byte code) with gcj!

up to 22. June 2004

Alex Kli and Martin Fischbach and others tried to rebuild the jEditLauncher from old sources and collected new ideas. Meanwhile more people demonstrated their interest in rebuilding the jEditLauncher. The majority of people wants to drop the old sources and rebuild a slim version of the jEditLauncher, best with open source tools.

General

As the old version of jEditLauncher is discontinued due to unmaintainable, incomplete sources and several bugs, it is not included in further releases of jEdit anymore. Many people miss the features of the old jEditLauncher and want a replacement for the old launcher.

People contributing or who want to contribute

Feature wish list

Command line options

Variables begin with $ in this notation. "jedit $file" stand thus for "jedit AFile To Open?.txt"

Old options of John Gellene's jedit launcher

First, doc is available at

http://cvs.sourceforge.net/viewcvs.py/*checkout*/jedit/jeditshell/html/launcher-guide.html?rev=1.10

-h opens help screen
-p open GUI to setup JRE Directory, path to jedit.jar and startup options
-i $java_jre_dir install jedit launcher
$java_jre_dir is the dir where Java Runtime Environment resides
see http://cvs.sourceforge.net/viewcvs.py/jedit/jEdit/installer/OperatingSystem.java?rev=1.18&view=markup
-u uninstall jedit launcher

Planned options for Martin Fischbach's jedit launcher

jedit   start jedit if it isnīt already running
jedit [$files] start jedit and opens specified files, f.e.
"jedit A.txt b.cpp" open jedit with A.txt and b.cpp
jedit -config starts a GUI to setup start parameters.
jedit -diff $file1 $file2 run jedit with diff plugin on files $file1 and $file2
jedit -setup $PathToJavaEnvironment $JEditInstallDir let launcher know where to find java.exe and jedit.jar
call during INSTALLATION
jedit -install $what $for_whom install context menu, desktop icons
$what = "desktop_icon" or "context_menu" or "program_group"
$for_whom = "all_users" or "single_user"
jedit -java $options additional options for JVM
jedit -jedit $options additional options for jEdit
jedit -wait causes jeditlauncher to wait, until jedit has opened buffer

Possible options for jedit

-usage  
-version  
-log=$loglevel $loglevel is an integer, setting the level of logging details
-nosettings  
-settings=$settingsdir $settingsdir is the directory where settings are saved
-noserver  
-server  
-server=$serverfile $serverfile specifies port, accesskey and version
-background  
-nobackground  
-gui  
-nogui  
-newview  
-newplainview  
-reuseview  
-restore  
-norestore  
-plugins  
-noplugins  
-startupscripts  
-nostartupscripts  
-run=$scriptfile $scriptfile is the script to run
-wait  
-quit  

Design

Additional information

The free microsoft c++ compiler can be obtained from

http://msdn.microsoft.com/visualc/vctoolkit2003/

Old Discussion

Can be found here: j Edit Launcher_Until_June 2004

Comments

Please post your comments here!

Brant Gurganus wrote on 25 Jun 2004

I was also setting up the script to do a diff and found that the diff plugin does not work on 4.2. Does any one know when this will get fixed?

The previous jEditLauncher had issues when accounts were limited accounts on Windows. To help avoid this issue, you can use Microsoft's Application Verifier program. It is free and makes sure that APIs are used correctly and the registry is accessed properly. Especially with security tightening for stuff like this in Service Pack 2, you might take a look through the Designed for Windows XP guidelines. Some of the stuff like using the Windows Installer for installation is hogwash, but it points out things to avoid for things to work in a multi-user environment.

Martin Fischbach wrote on 29 Jun 2004:

Brian, seems like your wiki account is working smile Sry, I didnīt reply to your mail!

Ya, we need a COM module! Iīll start that probably tomorrow, as soon as Iīm finished with that commandline stuff!

Donīt know how to do it on *nix, but windows offers a main procedure with w_char *argv[]! Hope that is similar on linux!?!

How to merge both version of our launchers?

Brian Hks wrote on 30 Jun 2004:

Ok I changed my mind the COM module is again an option. I got the static context registry change to work. The only thing the COM module would be needed for is to do a diff using the GUI. Opening files and multiple files can be done with the static context registry change.

My launcher pretty much does everything but the -diff (because the plugin is busted) and optional jvm switches. I've update my code on the web site listed above.

Now I need to: add the jvm switches option and port to linux.

Matthew Zaleski wrote on 01 Jul 2004:

I'm trying to set up my environment to match what I think everyone else involved in this project is using:

Martin Fischbach wrote on 02 Jul 2004:

For COM shell integration:

Meanwhile I found a good example on how to do COM object. Source should even compile under Ming W? / GCC. Extensions of that COM object towards shell capibilities are a piece of cake! Just implemententing 4 methods smile I think I can finish that stuff until Tuesday 06.07.2004! Let ya know .....

For Launcher:

I have implemented the whole variety of above mentioned command line options for my launcher, should work with unicode now, but havenīt done a test yet. I will upload the current version within the next days after tests are successfully run! Will do updates and improvements for modularisation ...

@ Matthew:

Matthew Zaleski wrote on 02 Jul 2004:

Good News on COM integration. Let me know if you want some help in that area.

Brian Hks wrote on 2 July 2004:

My reason for GNU make is that the make files then become portable. We use the windows gnu make.exe at where I work and I'm not sure where it was obtained. Probably compiled form source. I'll post the exe on my web page along with my source.

Ant would be fine with me as well. Although getting ant to compile C++ code doesn't work as well as using make. The dependancy rules make uses are awesome where as ant tends to lack in that area.

For clarification the reg file I've posted is not anything like the way the old launcher works. The old launcher would register the a COM module that would get called anytime a file was right clicked on. In that call the COM module would add the menu items to the right click window depending on what files were selected when the click occured. That is how you get the diff option when two files are selected.

I've written some COM modules and it really is not very difficult. It basically has to do two things. 1. register it's guid properly and 2. implement the correct interface for the callback from the right click.

I have to disagree with the above feature set. Install setup and config should not be part of the launcher. These are options that are better left to a seperate Java app. The reason is that all they do is manipulate the properties file. The install on the other hand is very windows specific and can be done by a batch file that calls regsvr on the COM DLL.

Brian

Martin Fischbach wrote on 05 July 2004

@Matthew:

@Brian:

Brian Hks wrote on 07 Jul 2004

This is why I do not thing the install junk belongs in the launcher. In the end there should be two binaries jedit.exe and jedit.dll. The exe is the launcher of course. jedit.dll is the COM server, now if it is done write it is a self contained program that includes install and uninstall.

Microsoft kindly provides an exe called regsvr32.exe in \winnt\system32. In the windows java install it can call "regsvr32.dll jedit.dll" regsvr32 looks in the dll for the Dll Register Server? export and calls it. In this call the dll simply needs to add its class id to the COM registry (by using registry api's) and then place its class id in the shellex key right by the one I've done in my static version. Uninstall is done by calling regsvr32 /u jedit.dll this will call Dll Unregister Server? that does the oposite of the other one.

This way we pollute jedit.exe with ifdefs for windows specific junk.

I'll look at changing my code to compile using ant, it should be better in our environment.

Brian

PS is there any way to be notified by email when this page is updated?

Martin Fischbach wrote on 07 July 2004, 11:42am

Brian Hks - 07 Jul 2004

This page sums up what I have found with trying to use Ant to build C++ projects http://c2.com/cgi/wiki?ApacheAnt Ant is just not designed for building non Java apps. I couldn't find a way to get Ant to loop through the source file list and compile each one to an obj file. Then there is no way to do dependency checking so if only one file is updated it will rebuild that one file only. Make does all this in a relatively compact build file.

I say stay with make.

Brian

Martin Fischbach wrote on 08 July 2004, 1:48pm

Brian, perhaps you have overseen http://ant-contrib.sourceforge.net/cc.html

Iīll give it a try ....

Brian Hks wrote on - 10 Jul 2004

I have actually tried that. Not for this project but for another one I did in the past. Hated it. It doesn't give me the level of control I want in a make system. So I decided to write my own. It is based on bean shell. I'll post a source forge project for it in a couple of days.

Brian

Initial page created by Martin Fischbach - 25 Jun 2004

Topic ImprovingJeditLauncher . { Edit | Attach | Ref-By | Printable | Diffs | r1.46 | > | r1.45 | > | r1.44 | More }
Revision r1.46 - 22 Jul 2004 - 09:49 GMT - Martin Fischbach
Parents: TWiki Users > Alex Kli
Copyright © 1999-2011 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding jEdit Community Wiki? Send feedback.
Get jEdit at !SourceForge.net. Fast, secure and Free Open Source software downloads