Wishlist X#

This forum is meant for questions and discussions about the X# language and tools
ic2
Posts: 1798
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Wishlist X#

Post by ic2 »

First let me emphasize that I think that a lot is (being) done in X# and that the support given is second to none. Nevertheless, I am still doing most of my work in VO. We have assigned a few projects to be converted for which we think it is more important that these can be maintained in .Net, e.g. for better acces to features and maybe even more important: a better chance that we find programmers in the future than for VO code. I expect that for some project keeping these in VO is fine. Working in VO is still a lot easier but with some added features in X#/VS the difference could be reduced. What I would like to know, there's no rush for reply, is an appx ETA for the following X# wishlist. Probably in a future Road Path? (most of the below points aren't currently mentioned there although sometimes they pop up in replies here).

I sorted by what we think is most important.
[EDIT] I've added a new point 10 which I think you can't realize but the priority would be much higher than 10 for me.

1 VS Immediate window working with X# code. What I read in https://www.xsharp.eu/forum/public-vfp/ ... gger#23495 seems a promising part!
2 Correct casing for all keywords (so it can be used in the Immediate Window too)
3 Option to open constructor, class (and probably preinit/postinit) like in VO. Ideal would be a choice for Goto Definition and Peek Definition in some way
4 Support for Codelens
5 Auto indent for structures like in VO. Earlier you wrote that you did not want to align ENDIF with IF because a user could be typing ENDIFme which then aligns unwatned. Apart from the fact that I question how many times a user types ENDIFme against the number of times a user has to manually align ENDIF (or press <Enter> + 2x <Backspace> every time, I wonder if 'ENDIFme support' is so important for other users, can it not become a setting?
6 Edit & continue support
(I guess this is difficult see https://www.xsharp.eu/forum/public-chit ... back#11610)
7 Remembering variables (e.g. just added, or in use in the current method) so they pop up in the suggestion list like it works in VO
8 Option to open the click method in a Winforms form also when the code does not reside in the code behind prg but in a separate program
9 What would be very handy is a way to better deal with comments. We often place comments with a number of tabs outlined on the same column but this is quite some work to keep it aligns on editing and readability varies (better in 4K monitors). Not sure if there are better ways to do this but maybe you have a suggestion?
10 Search result do not include the name of method or function. I assume that is one of the many VS shortcomings which you can't fix but it is one of the worse shortcomings of VS.

I would welcome comments from others, e.g. to learn which of my wishlist items others find important.

Dick
User avatar
robert
Posts: 4225
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Wishlist X#

Post by robert »

Dick,

Some quick answers to your questions:

1) "Debugger Immediate window" We are working on this. This requires an expression evaluator that understands X#.

2) "Keyword case" I am not sure what you mean with this. Did you enable the Keyword Case Synchronization in the Text Editor settings ? Is that not enough?

3) "Peek and Goto definition". This should work again in 2.13.2. At this moment only a single item is supported.
Multiple items would require us to create a tool window with a list that you can choose from. That is more work and not to be expected in the near future

4) "CodeLens" This is a LOT of work. Unfortunately most/all of the CodeLens in C#/VB is hardcoded for these languages. So we will have to recreate all of that.
And what exactly are you thinking of: references, source code control information, something else ?
The only thing that the editor provides is a mechanism to show information on a certain line in the editor.
All the information on that line has to be provided by others (us)

5) "Formatting" This should mostly with with 2.13.2. At this moment formatting is done when you type Enter, not while typing other characters

6) "Edit and continue" Difficult. I will discuss this with Nikos in Germany.

7) "Auto Type" This auto type feature was working in an internal build, but not perfect. We have disabled this for now but will try to complete this asap.
The problem that we have is that the list of possible words to show in the completion list is MUCH bigger than in VO, since the .Net Framework
has a LOT more types, members etc. Most likely we will try to limit the list to parameters, local variables and fields in the current type.
That should not cost too much time. And maybe after an AS keyword we can list types and namespaces. But if you have a long list of USINGS at the
start of your program then this list may already get fairly long.

8 ) "Open Click method" This works for code in the form.prg. To open code outside form.prg and form.designer.prg we have to make the Windows Forms editor smarter than it is.
This is also not working in C#.

9) "Better deal with comments": I have no idea what you mean with this

10) "method and function in Search" Do you mean the name of the method or function where the text is found ?
That will be difficult, since the search mechanism is completely handled by VS.
They work file based, so the search returns a filename and line number.
There seems to be a way to influence the search mechanism, but I have not had the time to look at this yet.
And I am not really sure if it is work the time spent


Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
ic2
Posts: 1798
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Wishlist X#

Post by ic2 »

Hello Robert,

Thanks for the extensive reply. Some answers:

1+2 If the current keyword casing is what the IM window expects, it's fine. But as most of my IM Window entries end in an error I thought they didn't. It's a lot less important when 1) is working.

3+4+6 It's a pity that these are hard and time consuming to program, as it would make the disadvantage VS versus VO smaller. It is what it is.

5 The extra <Enter> after endif while it indents without at the else remains illogic to me. It's not a main concern but just a returning nuisance reminding me multiple times a day how much more usable VO is. compared to VS. Maybe that is why it works that way B)

8 This is certainly not a main thing; I added it because you earlier wrote that you may be able to fix it. Which would be kind of cool as Microsoft couldn't.

9 Currently we add comments aligned at the right of the code. This is quite time consuming to maintain because we keep aligning it; I noticed that even going through the code with the cursor made casing change and disrupted the alignment of comments despite using tabs. I do not directly have a clear alternative but I was wondering if others may have some ideas. It would be probably best if comments could be detached from the actual code. It don't expect you to be able to change this as it is VS after all, but you never know.

10 Yes, I mean the method name. E.g. I am searching something and I would recognize the method I am looking for. But now I have to open sometimes many of the search results (same with compiler errors) before I finally found my code. I fully understand that this is probably unsolvable for you. But I wonder how programmers can work reasonably in VS if no solutions are sought for such shortcomings (of MS, not yours!)?

Dick
User avatar
robert
Posts: 4225
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Wishlist X#

Post by robert »

Dick,

1) The intermediate window understands expressions and not commands. So what is the deal with keywords there ?
9) If you have enabled keyword case synchronization then going through the code with the cursor could indeed change the casing. But that should not disturb the comment location, unless you are using a proportional font

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
ic2
Posts: 1798
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Wishlist X#

Post by ic2 »

Hello Robert,
robert post=23711 userid=253 wrote: 1) The intermediate window understands expressions and not commands. So what is the deal with keywords there ?
I remember from earlier attempts that if I e.g. typed something like : ? Substr(cVar,5,1) that I had to vary the capitalization of Substr multiple times until the case sensitive C# IM window finally understood it. With thanks to the Microsoft idiot who thought it was a good idea to make C# case sensitive.
robert post=23711 userid=253 wrote: 9) If you have enabled keyword case synchronization then going through the code with the cursor could indeed change the casing. But that should not disturb the comment location, unless you are using a proportional font
I don't remember ever changing the VS font (Ebrima 10) and indeed it's proportional. I think I have to try Consolas which I use in VO.

Dick
User avatar
Kees Bouw
Posts: 97
Joined: Wed Nov 06, 2019 11:35 am
Location: Netherlands

Wishlist X#

Post by Kees Bouw »

robert post=23700 userid=253 wrote:They work file based, so the search returns a filename and line number.
There seems to be a way to influence the search mechanism, but I have not had the time to look at this yet.
And I am not really sure if it is work the time spent
Robert
How can you say "not sure worth the time spent"? In most of my .prg files there are dozens of methods, functions etc. If I search for something I get a long list of lines and line numbers, giving me no clue at all which method, function etc. each line concerns. How can anyone work in this way? What am I supposed to do, put every method, function etc. in a separate .prg file?
User avatar
robert
Posts: 4225
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Wishlist X#

Post by robert »

Dick,
I would recommend the font "Hack" which has a clear distinction between zero and uppercase,
as well as between the 1 and the lower case L
hackfont.png
hackfont.png (8.34 KiB) Viewed 400 times
https://sourcefoundry.org/hack/

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
User avatar
robert
Posts: 4225
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Wishlist X#

Post by robert »

Kees
KeesIC2 post=23715 userid=5470 wrote:
robert post=23700 userid=253 wrote:They work file based, so the search returns a filename and line number.
There seems to be a way to influence the search mechanism, but I have not had the time to look at this yet.
And I am not really sure if it is work the time spent
Robert
How can you say "not sure worth the time spent"? In most of my .prg files there are dozens of methods, functions etc. If I search for something I get a long list of lines and line numbers, giving me no clue at all which method, function etc. each line concerns. How can anyone work in this way? What am I supposed to do, put every method, function etc. in a separate .prg file?
You are the first of our customers that asks for this feature.
Also nobody replied to Dick's message by saying: yes I miss that too.
Apparently this is no issue for others.
Maybe they have a different way of organizing their source code ?
We have limited resources, and we try to spend the time on features/issues that affects the most people.

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
User avatar
Fabrice
Posts: 405
Joined: Thu Oct 08, 2015 7:47 am
Location: France

Wishlist X#

Post by Fabrice »

Hi Kees and Dick,

about the 10), related to Search, I must admit I don't understand where is the trouble, so I'm afraid that we might be talking about something different.

I often search for string or method names, etc...
What I do is Ctrl-F, then type my search, and in the search dialog, press the combo sign next to Arrow that follow the search text.
From there, I select "Find All".
This produce a tab at the bottom of my VS called "Find" and the text I was searching; and a list of lines where the text is found, grouped by Files (in bold); and for each line I have the the position (line/col). A simple double click will jump at the right place.
And If this is not ok I can re-open that window to select another location...
Is this what you are looking for ??

Regards,
Fab
Attachments
searchSample.jpg
searchSample.jpg (122.24 KiB) Viewed 400 times
XSharp Development Team
fabrice(at)xsharp.eu
FFF
Posts: 1522
Joined: Fri Sep 25, 2015 4:52 pm
Location: Germany

Wishlist X#

Post by FFF »

ic2 post=23709 userid=455 wrote:...But I wonder how programmers can work reasonably in VS ...
They don't, they use Xide <s,cr>
Regards
Karl
(on Win8.1/64, Xide32 2.19, X#2.19.0.2.)
Post Reply