1. EuGeany 1.2
- Posted by K_D_R Mar 06, 2013
- 1980 views
- Last edited Mar 08, 2013
New Geany support files posted to: http://rapideuphoria.com/eugeany-1.2.tar.gz They should be available in a day or two, if not sooner.
Many improvements: EuHelp.e now has a switch for users of the Linux Distribution, Debian. inspired by Andrew Katz editions to the previous version. Linux file paths are automatically determined and Windows users should only have to edit one simple constant declaration. No more file swapping with filetypes.Euphoria.conf. Also, std.euphoria-4.1.e.tags, and snippets.conf. The installation/backup program is much improved and now called EuGeany.ex. Simply unpack the EuGeany 1.2 files to the directory EuGeany and run EuGeany.ex from there.
Regards,
Edit: March 8,2013
Set the name of the download file back to http://rapideuphoria.com/eugeany-1.2.tar.gz
2. Re: EuGeany 1.2
- Posted by euphoric (admin) Mar 07, 2013
- 1874 views
OK, I'm setting this up at home...
Thanks Kenneth!
3. Re: EuGeany 1.2
- Posted by euphoric (admin) Mar 07, 2013
- 1881 views
Oops! I ruined your link, Kenneth! I thought it already posted and you had used the wrong link. SORRY!
4. Re: EuGeany 1.2
- Posted by K_D_R Mar 07, 2013
- 1885 views
Oops! I ruined your link, Kenneth! I thought it already posted and you had used the wrong link. SORRY!
No problem. I corrected the download link.
5. Re: EuGeany 1.2
- Posted by SDPringle Mar 07, 2013
- 1841 views
A feature I would like to see, is one where the user of an editor can jump to different places of his sources according to an ex.err file. So, after a EUPHORIA program is run, and an ex.err file is created. The editor can jump to the line of failure, and then if we could have an easy way to get to the caller's line from there and all the way up the chain that would be something indeed.
Search and replace over multiple files using regular expressions is a feature I appreciate from jEdit. However, it would be nice if it could do search and replace only in say the current EUPHORIA routine, and only in the code and comments and not inside strings. So, suppose we had checkboxes for comments, code, and strings. So you can choose any combination thereof.
Finally, it would be nice to have spell checking. In the strings, the dictionary would be the natural language of the system (or something set by the user using the system), in the code the dictionary would be the declarations, and when declaring new symbols they could check between the underscores so users don't accidentally misname variables: tihs_entry would have the 'tihs' part underlined in red on the declaration. After that the use wouldn't be a spelling mistake, but 'this_entry' would because it would mispelt. Finally, comments should have a dictionary that is a combination of this and the earlier symbols.
This goes way beyond what you can do with syntax highlighting files. I suppose it is possible to create a Jedit plugin for this. Certainly, it is possible for someone working directly with a project's source code.
That's my 2 cents. To send me 2 cents, my bitcoin address is: 1DMHNzJEhKo5Nr8v7dHp41byA8v2C67Quq :)
Shawn
6. Re: EuGeany 1.2
- Posted by ghaberek (admin) Mar 07, 2013
- 1839 views
A feature I would like to see, is one where the user of an editor can jump to different places of his sources according to an ex.err file. So, after a EUPHORIA program is run, and an ex.err file is created. The editor can jump to the line of failure, and then if we could have an easy way to get to the caller's line from there and all the way up the chain that would be something indeed.
Search and replace over multiple files using regular expressions is a feature I appreciate from jEdit. However, it would be nice if it could do search and replace only in say the current EUPHORIA routine, and only in the code and comments and not inside strings. So, suppose we had checkboxes for comments, code, and strings. So you can choose any combination thereof.
Finally, it would be nice to have spell checking. In the strings, the dictionary would be the natural language of the system (or something set by the user using the system), in the code the dictionary would be the declarations, and when declaring new symbols they could check between the underscores so users don't accidentally misname variables: tihs_entry would have the 'tihs' part underlined in red on the declaration. After that the use wouldn't be a spelling mistake, but 'this_entry' would because it would mispelt. Finally, comments should have a dictionary that is a combination of this and the earlier symbols.
This goes way beyond what you can do with syntax highlighting files. I suppose it is possible to create a Jedit plugin for this. Certainly, it is possible for someone working directly with a project's source code.
That's my 2 cents. To send me 2 cents, my bitcoin address is: 1DMHNzJEhKo5Nr8v7dHp41byA8v2C67Quq :)
Shawn,
These are all great ideas. I especially like the find/replace settings, that bugs me all too often.
If you don't mind, I'd like to steal borrow these ideas for my Euphoria IDE project.
-Greg
7. Re: EuGeany 1.2
- Posted by mattlewis (admin) Mar 07, 2013
- 1815 views
A feature I would like to see, is one where the user of an editor can jump to different places of his sources according to an ex.err file. So, after a EUPHORIA program is run, and an ex.err file is created. The editor can jump to the line of failure, and then if we could have an easy way to get to the caller's line from there and all the way up the chain that would be something indeed.
This is a feature in Edita, and I shamelessly copied it in my wxIDE editor (I think there's something like this in ed.ex, too). It is very handy.
The basic idea is that you hit F12, which opens up an ex.err file in the directory of the file you're editing, and then you go to whatever line you're interested in, and hit F12 again, which goes to the referenced line. If the file isn't already opened, then it opens it for you.
Matt
8. Re: EuGeany 1.2
- Posted by jimcbrown (admin) Mar 07, 2013
- 1817 views
(I think there's something like this in ed.ex, too).
IIRC ed.ex would, if it saw an ex.err in the current directory and no file name was given, open the file referenced in the ex.err and jump to the appropriate line number, and then display the 1-line error message from ex.err in the status.
9. Re: EuGeany 1.2
- Posted by SDPringle Mar 07, 2013
- 1801 views
Some time ago, I documented a way one could associate .err with ed.exe, in the Installation (Section 2.? ). You need to modify the registry. When done you only click the ex.err file and ed.exe opens for you. Now, if we have a way of directing an editor to go to some line in a given file at the command line, you can strip out pieces of ed.ex and call whatever editor that can do that. But often it is not the inner most frame that has the problem. It is the caller of that routine, calling it badly for example.
Shawn Pringle
Forked into: ex.err & Geany
11. Re: EuGeany 1.2 - now available for download
- Posted by K_D_R Mar 08, 2013
- 1784 views
Click here: http://rapideuphoria.com/eugeany-1.2.tar.gz
The files should unpack to the directory EuGeany-1.2. The installation program EuGeany.ex should be run from the installation directory.
Read the documentation comments for EuGeany.ex and EuHelp.* before running EuGeany.ex.
Please post any requests for help, criticisms, or suggestions for improvements here or email to me at: wolfmanjacques@gmail.com
Regards, Ken Rhodes
12. Re: EuGeany 1.2 - now available for download
- Posted by _tom (admin) Mar 09, 2013
- 1720 views
After experimenting, I manged to break my Geany installation. It currently recognizes no files when I try the file open dialog (all directory listings are completely blank). At the moment I lack the time to figure this out.
In the mean time try this bit of code:
include std/console.e include std/filesys.e sequence pwd = current_dir() & "/" sequence path = getenv( "HOME") & "/.config/geany" sequence destination sequence filedata = { { "/filedefs/" , "filetype_extensions.conf" }, {"/" , "snippets.conf"}, {"/filedefs/" , "filetypes.Euphoria.conf"}, {"/tags/" , "std.euphoria-4.1.e.tags" } } for i=1 to length( filedata ) do -- BACKUP OLD FILES destination = path & filedata[i][1] & filedata[i][2] display( "\n----------- " & destination ) if file_exists( destination ) then puts(1, "backing up " ) if copy_file( destination, destination & ".bak", 1 ) then puts(1, " ... " ) else display( " !!! backup failed" ) abort(0) end if else display( "... file does not exist ... no backup needed") end if -- UPDATE FILES if copy_file( pwd & filedata[i][2], destination, 1) then display( " updated") else display( " !!! update failed") abort(0) end if end for
_tom
13. Re: EuGeany 1.2 - now available for download
- Posted by K_D_R Mar 10, 2013
- 1618 views
After experimenting, I manged to break my Geany installation. It currently recognizes no files when I try the file open dialog (all directory listings are completely blank). At the moment I lack the time to figure this out.
In the mean time try this bit of code:
include std/console.e include std/filesys.e sequence pwd = current_dir() & "/" sequence path = getenv( "HOME") & "/.config/geany" sequence destination sequence filedata = { { "/filedefs/" , "filetype_extensions.conf" }, {"/" , "snippets.conf"}, {"/filedefs/" , "filetypes.Euphoria.conf"}, {"/tags/" , "std.euphoria-4.1.e.tags" } } for i=1 to length( filedata ) do -- BACKUP OLD FILES destination = path & filedata[i][1] & filedata[i][2] display( "\n----------- " & destination ) if file_exists( destination ) then puts(1, "backing up " ) if copy_file( destination, destination & ".bak", 1 ) then puts(1, " ... " ) else display( " !!! backup failed" ) abort(0) end if else display( "... file does not exist ... no backup needed") end if -- UPDATE FILES if copy_file( pwd & filedata[i][2], destination, 1) then display( " updated") else display( " !!! update failed") abort(0) end if end for
_tom
Thanks a million for the installation code, Tom! I'll try to put your routine to good use.
Ken
14. New installation code ( Courtesy of Tom)
- Posted by K_D_R Mar 12, 2013
- 1508 views
Ok... I have tried not to much up Tom's code, but mucking up code is my area of expertise.
I have made slight changes to support Windows. I would appreciate someone who uses Geany under Windows telling me if the following code will work for Windows? According to the Geany manual, it should work for Windows XP.
include std/console.e include std/filesys.e sequence path = getenv( "HOME") & SLASH & ".config" & SLASH & "geany" sequence pwd = current_dir() & SLASH sequence destination ifdef WINDOWS then path = "C:" & SLASH & "Documents and Settings" & SLASH & "UserName" & SLASH & "Application Data" & SLASH & "geany" end ifdef sequence filedata = { { SLASH & "filedefs" & SLASH , "filetype_extensions.conf" }, { SLASH & "filedefs" & SLASH , "filetypes.Euphoria.conf"}, { SLASH & "tags" & SLASH , "std.euphoria-4.1.e.tags" }, { SLASH , "snippets.conf"} } for i=1 to length( filedata ) do -- BACKUP OLD FILES destination = path & filedata[i][1] & filedata[i][2] display( "\n----------- " & destination ) if file_exists( destination ) then puts(1, "backing up " ) if copy_file( destination, destination & ".bak", 1 ) then puts(1, " ... " ) else display( " !!! backup failed" ) abort(0) end if else display( "... file does not exist ... no backup needed") end if -- UPDATE FILES if copy_file( pwd & filedata[i][2], destination, 1) then display( " updated") else display( " !!! update failed") abort(0) end if end for
Thanks, Ken
15. Re: New installation code ( Courtesy of Tom)
- Posted by euphoric (admin) Mar 13, 2013
- 1487 views
Some updated info for Windows installs:
In my version of Windows, the actual path to the directory created by geany is
C:\Users\Owner\AppData\Roaming\geany
That path doesn't exist until geany is run once. You should tell users to run geany once so it can write those default files/dirs. This way you can confirm that whatever path they provide for installing these forms is correct.
The path to geany config files needs to be gotten from getenv("APPDATA"), instead of getenv("HOME").
APPDATA can be used from Windows XP on up. On my Windows XP box, it returns
C:\Documents and Settings\user\Application DataOn Windows 7 it returns
C:\Users\Owner\AppData\Roaming\geanyThe Windows file path code need only be this:
constant GEANY_DIR = getenv( "APPDATA" ) & SLASH & "geany"
Ask if ya gots questions...
16. Re: New installation code ( Courtesy of Tom)
- Posted by euphoric (admin) Mar 13, 2013
- 1453 views
You need to confirm that the /tags/ dir exists. If not, go ahead and create it. Otherwise, install of tags file fails.
17. Re: New installation code ( Courtesy of Tom)
- Posted by euphoric (admin) Mar 13, 2013
- 1469 views
I think that if a file you want to backup doesn't exist, don't issue an error and cause the user to have to press a key. Just skip it gracefully. No harm, no foul.
For example, the "filetype_extensions.conf" file doesn't exist at first, but you warn me that it wasn't able to back it up. Not a biggie, really.
ALSO: The executable on Windows is EuHelp.exe, so currently it fails to install the help file because it uses the Unix name (no extension).
Finally, if EuHelp.exe already exists in the \bin\ folder, it doesn't get copied and indicates a failure. You should probably remove the old copy and move the new one in, just in case.
18. Re: New installation code ( Courtesy of Tom)
- Posted by K_D_R Mar 17, 2013
- 1374 views
Thanks to Euphoric for all the suggestions... I will rework the code and post a new version.
Regards, Ken
19. Re: New installation code ( Courtesy of Tom)
- Posted by K_D_R Mar 17, 2013
- 1364 views
I have decided to upload EuHelp separately, so there will be a similar installation program for those files. Here is the latest....
-- -- EuGeany 1.3b -- -- usage eui EuGeany.ex -- -- Installs Geany configuration files which -- provide support for the Euphoria Programming Language -- Existing files are backed up with a backup extension suffix -- which may be defined by the user -- -- Windows XP and later users should run Geany at least once, -- prior to executing this program, in order to set the "APPDATA" -- environment variable. -- -- For more information read comments in the respective files, -- especially, filetypes.Euphoria.conf. -- -- include std/console.e include std/filesys.e include std/graphics.e constant BACKUP_SUFFIX = "~" -- constant BACKUP_SUFFIX = ".BAK" sequence GEANY_USER_CONFIG = getenv( "HOME") & SLASH & ".config" & SLASH & "geany" ifdef WINDOWS then GEANY_USER_CONFIG = getenv( "APPDATA" ) & SLASH & "geany" end ifdef -- create tags directory, if it does not already exist: if create_directory( GEANY_USER_CONFIG & SLASH & "tags" ) then end if constant SCREEN = 1 constant DIR = 1 constant FILE = 2 sequence data = { -- DIR = [1] -- FILE = [2] { SLASH & "filedefs" & SLASH , "filetypes.Euphoria.conf"}, { SLASH & "tags" & SLASH , "std.euphoria-4.1.e.tags" }, { SLASH , "filetype_extensions.conf" }, { SLASH , "snippets.conf"} } constant OVERWRITE_EXISTING_FILE = 1 sequence destination sequence pwd = current_dir() & SLASH bk_color(BLACK) for i=1 to length( data ) do destination = GEANY_USER_CONFIG & data[i][DIR] & data[i][FILE] -- BACKUP OLD FILES text_color(BRIGHT_BLUE) display( "\n---- " & destination ) if file_exists( destination ) then -- make a back up copy text_color(YELLOW) for x = 1 to length(GEANY_USER_CONFIG & data[i][DIR]) -11 do puts(SCREEN, " ") end for display( " backing up ... ", 0 ) if copy_file( destination, destination & BACKUP_SUFFIX, OVERWRITE_EXISTING_FILE ) then -- do nothing else text_color(BRIGHT_RED) display( " !!! backup failed" ) end if else -- file does not exist, no need to back up text_color(YELLOW) display( "no backup file necessary ... ", 0 ) end if -- UPDATE FILES if copy_file( pwd & data[i][FILE], destination, OVERWRITE_EXISTING_FILE) then -- file is successfully updated text_color(BROWN) display( data[i][FILE], 0) text_color(BRIGHT_CYAN) display ( " UPDATED!") else -- update failed text_color(BRIGHT_RED) display( " !!! update failed") end if end for