GSA Lister Plugin (source code viewer)

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: white, Hacker, petermad, Stefan2

darkz
Junior Member
Junior Member
Posts: 17
Joined: 2007-05-24, 09:37 UTC

GSA Lister Plugin (source code viewer)

Post by *darkz »

Lister plugin for the Total Commander file manager. This plugin is a source code viewer with highlighting and some minimal editing features. It is based on scintilla and delphisci delphi component.

available at: http://sourceforge.net/projects/gsalister

I developed this plugin for myself. So at this point i consider the development paused, but if it fit other peoples need and more than 2-3 people want to use it... i will do my best to improve it.
Last edited by darkz on 2007-06-01, 11:37 UTC, edited 1 time in total.
User avatar
roentgen
Power Member
Power Member
Posts: 757
Joined: 2005-12-03, 19:58 UTC

Post by *roentgen »

Hi.

Very nice plugin I must say. Seems faster than SynPlus as far as I tested.

However, why don't you provide a proper detect string for certain extensions?

readme.txt wrote:Todo:
--------
- installer (inno based)
You may skip this one :wink:. Installers suck, and besides that, TC provides means for automated installation from within zip archives.

Editing is possible only when opening a file from an already opened Lister window. Wouldn't be a better solution to implement a hot-key (F4) that toggles editing on/off?
TC for Linux please!
User avatar
m^2
Power Member
Power Member
Posts: 1413
Joined: 2006-07-12, 10:02 UTC
Location: Poland
Contact:

Post by *m^2 »

roentgen wrote:
readme.txt wrote:Todo:
--------
- installer (inno based)
You may skip this one :wink:. Installers suck, and besides that, TC provides means for automated installation from within zip archives.
Agree.
User avatar
m^2
Power Member
Power Member
Posts: 1413
Joined: 2006-07-12, 10:02 UTC
Location: Poland
Contact:

Post by *m^2 »

I can't make it work.
When I installed it in my TC, it wasn't even loaded (or was immidiately unloded).
Then I installed it in almost clean TC7 RC1. I got:
Crash in plugin GSALister.wlx. External exception ??????
Now I can't reproduce the crash because TC either doesn't load it ( or unloads it )...
Next TC version - 7.0 PB4 which looks totally clean. The plugin doesn't load.
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3854
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

2m^2 : ReadMe.txt says :

Code: Select all

9. Copy "pcre.dll" and "SciLexer.dll" in system32 or in any folder on the search PATH.
;)
#5767 Personal license
User avatar
m^2
Power Member
Power Member
Posts: 1413
Joined: 2006-07-12, 10:02 UTC
Location: Poland
Contact:

Post by *m^2 »

sqa_wizard wrote:2m^2 : ReadMe.txt says :

Code: Select all

9. Copy "pcre.dll" and "SciLexer.dll" in system32 or in any folder on the search PATH.
;)
:oops: That was it.
Very nice plugin.
Question: Your pcre conflicts with the one I use. Can I use not modded pcre 6.4 instead of yours?
ADDED: Suggestion: you have a lot of unused things inside this plugin (Resources for sure. Also debug info. I think that also some code). Could you please clean it up before the final release?
Last edited by m^2 on 2007-05-24, 12:15 UTC, edited 1 time in total.
User avatar
Flint
Power Member
Power Member
Posts: 3487
Joined: 2003-10-27, 09:25 UTC
Location: Antalya, Turkey
Contact:

Post by *Flint »

Very nice plugin!
My requests:
1. Make it possible to turn the text cursor off, so that pressing cursor arrow keys scrolled the whole document instead of just moving the cursor.
2. Add customizations - at least, for fonts and colors.
Flint's Homepage: Full TC Russification Package, VirtualDisk, NTFS Links, NoClose Replacer, and other stuff!
 
Using TC 10.52 / Win10 x64
User avatar
m^2
Power Member
Power Member
Posts: 1413
Joined: 2006-07-12, 10:02 UTC
Location: Poland
Contact:

Post by *m^2 »

3 more suggestions:
- scroll page down with space, just as lister does
- extendable highlighters set
- in search, shortcut for moving to the next match
darkz
Junior Member
Junior Member
Posts: 17
Joined: 2007-05-24, 09:37 UTC

Post by *darkz »

woohoo .. a lot of feedback here, thx guys.

- Regarding of different pcre versions i guess any newer version should do, but i never tried myself so i will try for first to differentiate the dll somehow, ex. change the name.

- Regarding the unused code, debug version, etc ... true, there is room for optimization of the dll size and load time.

- as for the other suggestions i will try to implement from them as soon as possible.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48021
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Regarding of different pcre versions i guess any newer version should do, but i never tried myself so i will try for first to differentiate the dll somehow, ex. change the name.
Can you try to load the dlls from the same directory as the plugin itself? Just use dynamic loading via LoadLibrary and GetProcAddress instead of static linking. To get the path of your plugin, you can use GetModuleFileName() with the handle of your dll. This way you will avoid any conflicts with equally named dlls in system32 (the so-called DLL hell).
Author of Total Commander
https://www.ghisler.com
darkz
Junior Member
Junior Member
Posts: 17
Joined: 2007-05-24, 09:37 UTC

Post by *darkz »

Question:

How can i enable the "options->show text cursor" menu item, and also how can i sense in the plugin when the user click there?

Also after some work on the project i come to this:

Suggestion points (no particular order):
========================================
1. "Editing is possible only when opening a file from an already opened Lister window. Wouldn't be a better solution to implement a hot-key (F4) that toggles editing on/off?"
2. "Make it possible to turn the text cursor off, so that pressing cursor arrow keys scrolled the whole document instead of just moving the cursor"
4. "scroll page down with space, just as lister does"
5. "Question: Your pcre conflicts with the one I use. Can I use not modded pcre 6.4 instead of yours? "
6. "Suggestion: you have a lot of unused things inside this plugin (Resources for sure. Also debug info. I think that also some code). Could you please clean it up before the final release?"
7. "Add customizations - at least, for fonts and colors."
8. "extendable highlighters set"
9. "in search, shortcut for moving to the next match"


Resolved poits and new features at this time:
=============================================
1.Added shortcuts (p.9,p.1)
- CTRL+N incremental search, search next
- CTRL+P incremental search, search previous
- CTRL+SHIFT+R incremental search, search with regex (toggle)
- CTRL+SHIFT+H incremental search, highlight search (toggle)
- CTRL+O open file
- CTRL+S save file (if not readonly)
- CTRL+SHIFT+W editor word wrap (toggle)
- CTRL+R readonly (toggle)
2.Space now scroll down the document if document is readonly (p.4)
3.Added "Highlighter settings" (partial) (p.7,p.8 )


Considerations:
===============
1. "Highlighter settings" come with 2 problems.
1.1. if external highlighter file "highlighter.cnf" is used the plugin load time increase (on my computer with 500ms) if the plugin does not see this file the load time will be the same as before, so if you want faster loading time then you should delete the "highlighter.cnf" and do not use this feature. If some major customizations needed you can always compile it in the project, or ask me to do it for you.
1.2. the "Delphi Scintilla Interface Components" are very nice but i found some bugs when you add or delete languages. I have to spend some time on that code or ask the original author to do it. Until then adding/deleting new languages is buggy in conjunction with the language manager and language selector, sorry...

2. Regarding PCRE dll, Ghisler suggested to use dynamical loading. The idea is good but for this i need to rewrite the "PCRE import unit for Delphi 7 and PCRE Wrapper for Delphi 7". I need to branch a lot of code here since some of my work in this lister is used in another projects (where i can not modify the PCRE Wrapper), this in theory is a small thing, but i kill the code re usability if i do so...

Todo:
=====
1. correct the "Delphi Scintilla Interface Components" language manager behavior on add/remove languages
2. pcre conflict.
darkz
Junior Member
Junior Member
Posts: 17
Joined: 2007-05-24, 09:37 UTC

Post by *darkz »

Version 1.01 released. I hope you enjoy the new release.

1. Added shortcuts (p.9,p.1)
- CTRL+N - incremental search, search next
- CTRL+P - incremental search, search previous
- CTRL+SHIFT+R - incremental search, search with regex (toggle)
- CTRL+SHIFT+H - incremental search, highlight search (toggle)
- CTRL+O - open file
- CTRL+S - save file (if not readonly)
- CTRL+SHIFT+W - editor word wrap (toggle)
- CTRL+R - readonly (toggle)
- F6 - emulate show/hide cursor total commander lister feature (partial)
- F7,F3 - find (Total Commander style)
- F5 - find/find next (Total Commander style)
2. Space now scroll down the document if document is readonly (p.4)
3. Added "Highlighter settings" (p.7,p.8 ) Note: loading external highlighter settings will increase the plugin load time, so if no user settings is needed just delete or rename the "highlighter.cnf" file and consider this feature inexistent.
4. Renamed "pcre.dll" to "dpcre45.dll" to avoid conflicts.
5. Removed debug informations from GSALister.dll.
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Please add a link to your first posting, the block is over... ;)
Also you should contact Ergo for an account on totalcmd.net. This way the plugin will spread much faster and is easier to update:
http://ghisler.ch/board/viewtopic.php?t=8007

Missing in your archive is the pluginst.inf file for automatic installation in TC, it should look like that:

Code: Select all

[plugininstall]
description=GSALister: source code viewer with syntax highlighting and some minimal editing features
descriptiondeu=GSALister: Quellcode-Betrachter mit Syntax-Hervorhebung und einigen minimalen Bearbeitungsfunktionen
type=wlx
file=GSALister.wlx
defaultdir=GSALister
Usability problems:
Copying dpcre45.dll and SciLexer.dll to system32 is not acceptable, please load from same directory.

You need to forward all standard lister hotkeys to the parent, right now it's not possible to switch plugin by pressing "4".

Icfu
This account is for sale
darkz
Junior Member
Junior Member
Posts: 17
Joined: 2007-05-24, 09:37 UTC

Post by *darkz »

OK, link updated.
Thank You for the "pluginst.inf" model and for the suggestions.
I will try to implement your suggestions for the next version.
darkz
Junior Member
Junior Member
Posts: 17
Joined: 2007-05-24, 09:37 UTC

Post by *darkz »

Version 1.02 released.

1. Now the installation can be done using Total Commander automated installation from within zip.
2. The lister now try to load the dpcre45.dll and SciLexer.dll first from the plugin directory (finally :) ).
3. Added/forwarded shortcuts:
- F2 reload file
- 1,2,3,4,5,6,7 (only forwarded when the file is in Read Only state)
4. Bugfixes.
Post Reply