Hi,
I'm sending my stack of patches against geany again, this time as individual patches. Here's the full list:
[PATCH 01/19] Prevent -Wmissing-prototypes report warning when compiling a plugin
[PATCH 02/19] Add signals for project options dialog opening and closing
[PATCH 03/19] Make the project menu accessible by plugins
[PATCH 04/19] Make it possible to change project patterns by plugins
[PATCH 05/19] Don't be annoying when not necessary
[PATCH 06/19] Make it possible for plugins to change the base directory of msgwindow
[PATCH 07/19] Open the file in the msgwindow even if no linenumber is specified
[PATCH 08/19] When closing tab, return to the document at the top of the MRU list
[PATCH 09/19] Use wider entry for project file path
[PATCH 10/19] New utils function to get relative path from one directory to another
[PATCH 11/19] File name in the project settings dialog shouldn't look it is editable
[PATCH 12/19] Use relative paths in the project files
[PATCH 13/19] Remove the "set" button from the project properties dialog
[PATCH 14/19] Rewrite tab switching queue
[PATCH 15/19] Do not insert --include= when the search pattern entry is empty
[PATCH 16/19] Use project patterns in the FIF dialog
[PATCH 17/19] Make the tab switching dialog a bit more useful
[PATCH 18/19] Use standard include paths for "open selected file"
[PATCH 19/19] Use per document indent sizes
Only some of them are required by gproject - others are just suggestions for improvements. I didn't explicitly distinguish between these two types of patches but it should be pretty clear from the description. There have been some minor changes since my last post - mainly the change of the FIF dialog to contain combo box for pattern selection and there are also some new patches - the detailed description is in the individual emails. Of course many of the patches are suggestions only so further discussion is welcome.
Cheers,
Jiri
On Thu, Sep 16, 2010 at 19:27, Thomas Martitz
<thomas.martitz(a)student.htw-berlin.de> wrote:
> On 16.09.2010 02:23, Lex Trotman wrote:
>>
>> Hi Jiri,
>>
>> I couldn't get this to work at all, it printed "calling indent this
>> line" all the time but didn't indent :-(
>>
>> I only had half an hour so I couldn't investigate much.
>>
>
> I have the same experience. Auto-indentation doesn't seem to work anymore
> (e.g. when hitting enter after on a line that ends with {, or when typing
> }).
I have just re-tested it again and it works on my machine (I have
forgotten one trace in the code - that's what you see in the console).
A quick question: have you read the commit log?
This patch makes it possible to specify several regex patterns for every
filetype which determine under what condition the indentation is performed.
The pattern variables are specified under the [settings] section of the
given filetype and their value is the regex to be used. The variables are
as follows:
* indent_this_line_regex - the match is performed after every keystroke
and if the regex matches, the indentation is performed on the current
line
* indent_next_line_regex - the match is performed only when enter is
pressed. The indentation is applied on the next line
* unindent_this_line_regex - like indent_this_line_regex but
unindents instead
* unindent_next_line_regex - like indent_next_line_regex but indents instead
Comments and strings are detected from the lexer so these can be ignored
inside the patterns. For instance these are very basic rules for GNU
indent style:
indent_next_line_regex=^.*\\{[[:blank:]]*$
unindent_this_line_regex=^[[:blank:]]*\\}$
indent_this_line_regex=^[[:blank:]]+\\{$
unindent_next_line_regex=^[[:blank:]]*\\}[[:blank:]]*$
By commenting-out the last two lines you get ANSI indentation style.
If you replace \\{ and \\} with begin and end, respectively, you
get analogous rules for pascal. Notice the double-escaping of { and } -
the first escape sequence is for the keyfile ini format (so for the
regex itself \\ becomes \).
This means that in order to make it work e.g. for C, you have to edit
~/.config/geany/filedefs/filetypes.c
(or the corresponding file under /usr/local/share/geany) and add
indent_next_line_regex=^.*\\{[[:blank:]]*$
unindent_this_line_regex=^[[:blank:]]*\\}$
indent_this_line_regex=^[[:blank:]]+\\{$
unindent_next_line_regex=^[[:blank:]]*\\}[[:blank:]]*$
under the [settings] section (+ restart geany). Please let me know if
it works (but also in the opposite case ;-).
Jiri
>
> Best regards.
> _______________________________________________
> Geany-devel mailing list
> Geany-devel(a)uvena.de
> http://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
>
Hi list,
To workaround bug(s) in GVFS, I've now changed the file saving
implementation for systems with GIO in SVN trunk. See also:
http://lists.uvena.de/geany-devel/2010-November/003412.html
Please help test this. File permissions should be preserved after
saving, and disk space exhaustion should now be handled without losing
the previously saved file.
Also, running geany --version (or -V) should now also show 'GIO' if your
system has it and Geany knew about it at build time.
Begin forwarded message:
Date: Tue, 02 Nov 2010 17:42:54 +0000
From: ntrel(a)users.sourceforge.net
To: geany-commits(a)uvena.de
Subject: SF.net SVN: geany:[5361] trunk
Revision: 5361
http://geany.svn.sourceforge.net/geany/?rev=5361&view=rev
Author: ntrel
Date: 2010-11-02 17:42:54 +0000 (Tue, 02 Nov 2010)
Log Message:
-----------
Use g_file_replace_contents() if available to save documents - this
should help workaround bugs in GVFS.
Needs testing.
Nick
Hi all,
I'm writing a plugin which integrates Devhelp documentation browser into
Geany (similar to Anjuta). The code is currently on my github site:
https://github.com/codebrainz/geany-devhelp
It's working quite well as is, but I can think of some more things to
improve it. It kinda mangles Geany's notebook layout a fair bit and I'm
not sure what the repercussions of this are (if any) although I'm fairly
satisfied with the results.
It also adds a menu item on the editor's context menu to look up the
current symbol/tag in the built-in devhelp, which is a nice feature
(thanks to b4n for suggesting this on IRC).
Obviously it requires having the Devhelp libraries installed as well as
WebKit GTK.
If anyone has any feedback (especially opinions about the way it lays
out the UI), I would very much appreciate hearing it. If you don't want
to install it, there's a screen shot in the repository:
https://github.com/codebrainz/geany-devhelp/raw/master/geany-devhelp.png
Thanks for your time,
Matthew Brush (codebrainz)
Hi!
I create this new thread because the original one was not really about
this, so please read that thread for some details, particularly my
previous mail:
http://lists.uvena.de/pipermail/geany-devel/2010-November/003567.html
Although I know it's probably not the best time for such huge changes
(Christmas and release coming soon, ...), but now's the news, now's the
mail :)
So, now the interesting stuff.
As you (might) already know, I've got the tagmanager to work in memory,
opening a little more the way to real-time symbols updating. For
convenience, I join the patch here (can be found in the previous thread)
as 0001-First-tagmanager-move-to-MIO-I-O.patch.
>From here, the next step is to use the in-memory capabilities and
reparse in (almost-)real-time. Here comes two more patches:
1) 0002-Enable-in-memory-tag-parsing.patch which is really tiny and
enables in-memory tag parsing
2) 0003-Update-tag-list-on-IDLE-time-right-after-any-documen.patch which
updates the tag list on IDLE time after any change in the document. This
patch is not really good (allowing a timeout and a user setting would be
probably a good idea), but it is here mostly for being able to test.
So with these on, you can test the in-memory tag parsing, and notice
that... it updates in real-time, yes, but the symbol list flickers a
lot, and it's very annoying. So here comes 5 (!) more patches:
1) 0004-Improve-implementation-of-hide_empty_rows-to-do-all-.patch: this
one is not needed, simply improves the implementation of
hide_empty_rows() -- note that it may be applied alone too;
2) 0005-Make-TMTag-reference-counted.patch and...
3) ...0006-Provide-a-GType-for-TMTag-and-use-it.patch: these two makes
TMTags reference-counted and add a GType for them, allowing the tree tag
store to keep a reference to them, so they never become invalid. I
needed it for the implementation of the last patch, read ahead;
4) 0007-Don-t-remove-and-add-the-symbols-tree-view-if-we-re-.patch: this
ones avoids removing and re-addind the tag view upon update if the final
state is the same as the original one, avoiding a part of the
flickering. Note that it applies alone as well;
5) and finally,
0008-Update-the-symbol-list-rather-than-clearing-and-re-b.patch: this is
the huge part of the thing: it re-implements tag store updating to avoid
clearing and re-filling the list, rather updating the rows when
possible. Apart avoiding flickering, this also keeps user's selection
and folding :)
As you might read at the top of the patch, this implementation is
probably not the better possible, but avoids lot of refactoring in a
code I'm not sure to understand perfectly well (add_tree_tag()) -- note
that I suggest another implementation in the patch's comment, and I have
a working sample (but not with the symbol list...) if somebody's interested.
About this patch, there is a question (as a FIXME in the patch): why did
you detached the tag store from the tag view before updating it? Was it
for performance reasons or what? I dropped this since it (obviously) led
to flickering, and it seems to work well, but I'm wondering.
Well! If you apply all these patches, you should have a working,
real-time, in-memory tag parsing that should look good :)
So, what's left? Testing of course, lot of it.
Also, for now it doesn't update tag list before the first save (for new
documents). I've not investigating the issue yet though.
So I'll stop here, thank you for your time reading and let you test
this, right? :)
Regards,
Colomban
PS: for the inpatients of you, I included a patch
(0000-In-memory-tag-parsing-all-together.patch) that combines all the 8
patches together.
Dear Geany devs,
Some time ago I received the attached patch though this list (from
Enrico?). I really love the added functionality to prevent duplicate
automatically added quotes and brackets.
Can this be added to Geany itself? Ideally this would be activated
with a checkbox in prefs > editor > completions.
-tnx!-
Harold
Geany is missing some of the newer language features available to
JavaScript since about version 1.6. This includes 'get', 'set', and
'yield' [1].
There's also a large gap between the keywords available to JavaScript
embedded in HTML/PHP (filetypes.xml) and JavaScript on its own
(filetypes.javascript); filetypes.xml contains a large number of
keywords, many of which are not just language features, but also
objects, and their properties and methods. This just seems incorrect,
to me. And I'll admit, the separation between embedded and standalone
JavaScript is something of a design flaw in Scintilla. Some might say
it's a "feature".
I'll just attach a patch that contains all of the additions I've
collected over a short (~20 minute) time frame. My primary source is
Mozilla Documentation Network, although the ECMA standards are more
authoritative. (Not that I even want to make an attempt to read it...)
The patch only touches filetypes.javascript, I think filetypes.xml needs
a thorough overlooking to determine what needs to go. I've stuck with
keywords listed in [1] and [2] for what's really necessary to define in
filetypes.javascript.
I tried to keep the separation between primary and secondary keywords
simple: 'primary' keywords are statements, operators, types, values, and
other language constructs. 'secondary' keywords are functions, objects,
properties, methods, etc. Note that I have not included functions like
alert(), confirm(), prompt(), ... in the secondary keywords, because
those are methods of the global window object, and are not a core
function in JavaScript itself.
Finally, the 'secondary' keywords in filetypes.javascript are unused.
This patch fixes it.
[1] https://developer.mozilla.org/en/JavaScript/Reference/Operators
[2] https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects
Greetings list!
I've searched the source tree and website for information on how the
installer package is built for Windows. Specifically, I would like to
know what kind of command line options are available to assist in silent
installations [1]. I figured (naively?) that looking up the the
installer spec/configure/scripts would be the easiest way to find out.
But now I'm at a loss, since even the "Building on Windows" [2] document
on the website does not contain any information on building the
installer package, nor how it is built for the official releases.
On to my questions: How is the installer package built? Are there any
command line options for it? I would like one that disables the
installation of the shortcuts on the Desktop and Quick Launch.
[1] http://wpkg.org/Geany
[2] http://www.geany.org/Support/BuildingOnWin32
Hi folks,
During review of German translation of Geany-Plugins I found a number
of author's names marked as translatable. I don't see any big reason
for doing this as most likely (and from my current point of view in all
cases) it's just a copy & paste task when doing the translation.
Therefor I suggest to don't mark author's names as a translatable at
all. What do you think about?
Cheers,
Frank
--
Frank Lanitz <frank(a)frank.uvena.de>