[Geany] "Replace All" button order

Daniel Richard G. skunk at xxxxx
Sat Jan 17 19:56:11 UTC 2009


On Sat, 2009 Jan 17 16:33:11 +0100, Enrico Tröger wrote:
> 
> I wrote this in another mail in this thread, one/the reason for the
> arrow was to simplify the dialog.
> But based on the feedback in this thread, we will remove it.

Placing a "Replace All" GtkFrame around them might address potential user 
confusion... grouping the buttons together in the same way that the arrow 
currently does, but without hiding anything.

Alternately, just to toss in another idea, NEdit uses a label at the left 
such that the button labels complete a sentence. Something like

	Replace all in: [Session] [Document] [Selection]

(Which would nicely eliminate the redundant "In" preposition on each of the 
buttons.)

> >-3- I would add a "replace all in current scope" function that I dream
> >of for years already ;-) where 'scope' means closest nesting func,
> >class, or whatever.
> 
> Hmm, not sure. Could be done but adds yet another button, yet another
> thing you need to sort out when you do a quick search/replace.
> (this is not a 'no', just a 'I won't work on it')
> 
> >-4-This button and "in selection" should be invalid (greyed) whenever
> >there is no 'scope' (module toplevel, meaning "in scope" = "in doc")
> >or there is no selection.
> 
> Yes, this is a good idea (at least for selection).

Agree on greying out "In Selection" when there is no selection. "In Scope" 
sounds interesting, but I think it would be too complicated practically to 
be added alongside the other find/replace modes. My misgivings:

1. Would it work reliably/predictably, even in cases of complex C++ code 
   and the like?

2. What, exactly, does "scope" mean? Body of the current function/method? 
   (Would it include the signature line, so you can find/replace the formal 
   parameters too?) What about just the current curly-brace block, which 
   would also have a claim to the term "scope?" Or the current class? Would 
   there be a preference to decide between these, or would it be something 
   set by the language syntax driver?

> >-6- I'd love an '\i' code working in both the search & replace fields,
> >that would mean 'indent' & match the user specified value for one
> >level of indentation in preferences (that is n spaces or one tab).
> 
> Use regular expressions like "^[ \t] .*" or something similar, I
> usually fail to construct untested regexps :).

Yeah, for cases like this I'd do e.g. s/^(\s*)foobaz/\1barqux/. There might 
be some value to \i if you're changing indent levels, but Geany already has 
such an excellent keybinding for this (Tab or Shift-Tab with a selection) 
that I would say a new regex escape is not needed.


--Daniel


-- 
NAME   = Daniel Richard G.       ##  Remember, skunks       _\|/_  meef?
EMAIL1 = skunk at iskunk.org        ##  don't smell bad---    (/o|o\) /
EMAIL2 = skunk at alum.mit.edu      ##  it's the people who   < (^),>
WWW    = http://www.******.org/  ##  annoy them that do!    /   \
--
(****** = site not yet online)



More information about the Users mailing list