Current missing Featuers in Water


this is a post about whats currently missing in water and I am Aware about that this is still beta and you guys are frequently working on it, but I want just to get sure that this is also on your list^^:

so, here is ist:

Colorthemes for the Editor

To zoom in the Editor and out of the Editor

As I could recognize it, the compilation/build-process takes to Long in relation to visual Studio

Some Text-Modifications are not possible which are possible in other IDE’s, like: remove a charachter or line with the “remove-button” on the Keyboard

to collapse type-definitions, like the #Region/endregion# directives in C#

A better Sourcecode-Formatting, it is not bad, but in some cases, like when you define a Record:

TMyRec = record  //this is how it currently Formats
A: string;
B: Char;

TMyRec = record //this is how I would it expect from Lazarus/VS X /Delphi
  A: string;
  B: char;

XML- Commentsections in the entire RTL (But this was discussed in a post before…)

Autocompletion of “begin-end” blocks (would be nice, but not that bad when not introduced)

And how I could recognize, the Debugger doesnt work properly, because when I want to step over or in (F10, F11) it doesnt work unfortunately, the Debugger doesnt jump to the corresponding-line

The “begin-end” words should be highlited with a colored border like in the screenshot below



1 Like

FWIW, thisnshoukd only apply if the build log is visible, and seems to be causing by the redrawing.updating speed of the view; i’m investigating. Switching away from the build log, it should be fast.

The Delete key not working is known, seems to be a WPF bug i[m investigating. Anything else editing wise, please let me know, as thats the only known outstanding issue.

1 Like

To take account that I downloaded Water officially yesterday, thats currently what I 've recognized^^

Ah 1 Thing more I really and I bet more developers would likes this too, is, that when you click on a type/variable/Member or such, it would be cool, when every founding of this word" gets highlighted, i.e =>

I click on the type “TAnimal” and now the Editor should Color or else Highlight every “TAnimal” where it founds it.
The same with every other word!

I will do my best to inspect it critically :stuck_out_tongue:

1 Like

it already does that, sort of,. you can use Ctrl+E to make it the search term, or just press Ctrl-Alt-Left/Right to navigate between occurrences. I don’t like the idea of it highlighting immediately; i use one editor that does this, and it drives me nuts as i cursor around code and stuff flashes everywhere.

Ah ok cool, I didnt know that^^, could you then suggest me a list of all shortcuts you have for water?

Like of all possibilities of water :slight_smile:

Ok, I actually can imagine what do you mean and the way you implemented it now, is kinda perfect!

I’d +1 for this feature, with 2 caveats:

  1. Highlighting references to the symbol under the caret should be limited to scoped references. i.e. if I am on a local variable then only references to that local variable should be highlighted. If a different local variable in another function happens to have the same name then references to that variable should not be highlighted.

Ctrl+E / Ctrl+F is too crude. These are simple token searches, not scope/context aware.

  1. To avoid the distracting highlighting on/off as you cursor around, introduce a delay before highlighting. If I am navigating through code I’m clearly not interested in references to the code I am currently looking at. But if I stop for more than, say 1 second, on a piece of code then I’m more likely inspecting it. And even waiting 1 second to have references to the symbol under the caret picked out for me is likely to be quicker (and more accurate) than my visually hunting.

I don’t know which other editor highlights immediately, but Visual Studio has a slight delay so avoids distracting flashing. I haven’t stop-watched it, but it feels like < 1 second but avoids incessant flashing of highlights (unless you are navigating particularly slowly).

Visual Studio has an additional finess, which is that it highlights declarations differently from references, so when inspecting references to variables/members in this way you can quickly recognise where a symbol is introduced to the scope and where that symbol is then referenced.

Notice that the caret is placed in the second reference to someId in BumpUp(), but the parameter is highlighted as the declaration, differently to the other references in the method.

I hate that I’m talking up features of Visual Studio, but we can’t ignore the things it does well just because of all the other things it makes a mess of. :slight_smile:


Good stuff, i’ve made a note, but this would be a v2 thing as it would (especially for your suggestions re scope & co) require massive interaction with the managed project system, and the guys over there are almost as busy as i am with Water itself :wink:

Thanks, logged as bugs://78112

@mh Could you also consider These Feature-Point for Fire, under the condition, that Fire doesnt even do this at the Moment?

Everything we’ll add (that isn’t platform specific) would be added to both Fire and Water, yes. it’s all (mostly) the same code base.

1 Like

Mark, what I currently also recognized is, when I double click a classname in the type Definition, like:
TFrog = public class end; ,
it actually should Highlight in grey the TFrog itself + and “end” but it doesnt.

What would you say, bug or by design?

double click selects the token at the cursor, nothing more.

ok, but would you maybe consider, to introduce the highlighting of the classname + the “end” token for that class?

Because, it is actually pretty useful and clear, when you have more than 3 Classes in one Document, otherwise ist possible that you are getting a Little bit confused where starts what and where does it end, at least sometimes for me.^^

we could extend the current block/scope highlighting to also highlight whole classes, i suppose.

1 Like

I’m giving Water a try, a few things I miss that maybe could be added:

  • Highlight parenthesis/brackets pairs. For long conditions it helps a lot.
  • After a Go to Definition, Alt Left goes back to where I was, that’s great, but only if the definition is in another file. If I’m navigating the same file, it goes to the previous opened file. I’d like an option to go back to where I was before the jump.
  • Find all. I see find is really fast, but I have to go one by one until I find the result I want. A results pane with the matching lines, file name, line number, and the option to double click and go to the result (like VS)
  • Code completion doesn’t highlight the current parameter. I’d like something like what VS does. You know what type is expected at each position, and which is the method version you are calling (for overloads).
  • A list of recently opened files. Not just recently modified. If I keep jumping between the same 4 files at a certain time, it is a slow process.
  • This I don’t miss, but would a be nice feature. An option, maybe clicking on the nav bar, to jump to the current file in the navigation pane.
  • Find references to a method. List all the calls where a method is used in the solution.
  • As a side note, I know MacOS is more keyboard-centric, but the context menu could gain with more options like GTD and company.

+1 on these two. I find myself wishing I had these features several times a day

It already does?

Yeah, this has been on my own wish list for a while; I should give this pro some time soon. Essentially right now the navigation stack is file based. The GTD doesn’t factor into it at all, only the file navigation does. This sounds like it might e fun thing to finally tackle this weekend :wink:

Yeah. I’m leaning towards either changing the Recents tab to just be that or making it an option to do one or the other (but not a new/separate tab).

It should already be syncing that up, if possibly. If you have a scenario where it doesn’t, please let me know.

Edit|Show References is/was supposed to do that, but I notice something seems to be not working there, I’ll have a look.

Good idea, yeah.

Yeah… mainly I’m uncertain how to tackle this (a) UI wise but also (b) without breaking the “search is instant” feeling. It’s one thing to find all files that contain a term, it’s another to collect all instances of it, and remain fast. if you’d start to type ‘a’ not the search field, you have literally a million hits in most projects.

What I think I’ll do short term is fix that clicking a new/different file in the search pane should not just show that file, but also jump to the first/a occurrence of the term, if its not already visible (right now it just goes to where you last where in that file, and you gotta then manually do Cmd-G to find next, which annoys me too)

Long term, I need to think about the appropriate UI paradigm to optional (and I assume on explicit) request find and show all occurrences, somewhere somehow.

Good idea, yeah.

I don’t have this option in Water…? Is this Fire only?

Not here. Begin-End, yes, but parenthesis it doesn’t.

I don’t see a case where it does sync. If I use GTD, find and select another file, use the nav bar. Anything that it’s not clicking in the nav pane.

I don’t have that option :thinking:
Is it platform specific?

Just a “Find All” button before the Find & Replace / Replace All…? and then a pane like the debug pane with the results?