Jump to content
dummzeuch

Favorite feature(s) of other editors that Delphi does not offer

Recommended Posts

I've moved this to a new topic because it is not much related to Delphi 12 being released.

1 hour ago, Dalija Prasnikar said:

 

2 hours ago, dummzeuch said:

OK, so what are examples for editors that are not "stuck in the Stone Age"?

 

Anything from JetBrains... 

 

I am not saying that Delphi is stuck in the Stone Age... but it is lagging behind in some areas.

OK, I bite: What's your favorite feature(s) in a JetBrains editor that Delphi does not offer? (Excluding things that Delphi offers but that don't work.)

Edited by dummzeuch

Share this post


Link to post
12 minutes ago, dummzeuch said:

I've moved this to a new topic because it is not much related to Delphi 12 being released.

OK, I bite: What's your favorite feature(s) in a JetBrains editor that Delphi does not offer? (Excluding things that Delphi offers but that don't work.)

Inlay parameter hints. It is extremely useful for reading and understanding the code https://www.jetbrains.com/help/idea/inlay-hints.html#change-inlay-hints-appearance

 

Excluding things that Delphi offers but don't work is tough restriction 😉 Well working code completion and refactoring are next. 

  • Like 1

Share this post


Link to post
9 minutes ago, dummzeuch said:

Hm, I have just read through that page and another one but I'm not quite sure whether I would find inline hints useful or annoying. I'd probably have to try it.

I am used to named parameters in Swift (which you have to explicitly write), so once you get used to the fact there there is more information in code, you learn to easily ignore it when you don't need it, but when you do need it is extremely helpful when you are going through code you are not familiar with or your own old code. Yes, you could also hover over the method to see the names and types, but that significantly slows down reading the code. 

 

I even find it helpful for the code I know well. I guess my brain likes the extra information being served on a plate. 

  • Like 2

Share this post


Link to post

There is one other feature I like, is ability to change editor font size in pixels. I would like to use Consolas, but size 10 is too small (13 pix) and size 11 is too large (15 pix). I am using 14 pix in other editors. I would post the QP number for that feature request, but it is currently down. But it seems that this would have to wait for new editor because AFAIK the current one can only deal with size in points.

 

One thing they implemented in Delphi 12 is increasing the line height, which is another important feature, when my eyes switch to overly sensitive mode.

Share this post


Link to post

Features missing in the Delphi editor:

  • Proper Unicode handling 150265824-cbf6652a-bbbc-457c-9498-5f09f9b60423.png150266107-fdccabd2-c766-4ec3-a674-13abdf91e63b.png.fca55cb41c3776b50917149cf3ff988d.png.  It does not even support combining characters.
  • Multi-cursor/selection editing 
  • Modification (track changes) bar that works with undo.
  • Accessibility support
  • Drag & drop editing
  • triple and quadruple click support
  • double/triple click and drag support
  • Enhanced scroll bar as in VS Code
  • ...
Edited by pyscripter
  • Like 2

Share this post


Link to post

I don't know if other IDEs have such functions. But I often need a "Undo"-function for working with the form. For example, you changed the width of one component with the mouse and want to return the previous value. ( Or I just didn't see this function in Delphi).

  • Like 3

Share this post


Link to post
1 hour ago, PaPaNi said:

I often need a "Undo"-function for working with the form

Saving the form will add an entry to the history, which can be reverted to later.

  • Like 1

Share this post


Link to post
2 hours ago, Uwe Raabe said:

Saving the form will add an entry to the history, which can be reverted to later.

Only if you have saved the previous steps, too. 

 

It is not useful for situations where you have already changed multiple things and then accidentally make a wrong move which you cannot revert. 

Share this post


Link to post

I agree that Undo would be beneficial in the form designer. Saying that, "change history" is one of many benefits of good source control, such as git. I use "Git diff with previous version" quite often with both DFM and PAS files. And DPROJ, for that matter.

 

I have Beyond Compare installed with Delphi IDE integration. Unfortunately I am not a fan of BC's Delphi integration. It has bit me more than once.

Share this post


Link to post
8 hours ago, JonRobertson said:

I have Beyond Compare installed with Delphi IDE integration. Unfortunately I am not a fan of BC's Delphi integration. It has bit me more than once.

Did you know that the limited Beyond Compare that comes with Delphi, can be used to show the differences of two arbitrary files? Just start it with parameters or even just start it and use drag and drop to diff the files. I have even configured it in TortoiseSVN as the diff viewer.

Share this post


Link to post

Yes. I have a license for Pro Edition. I have been a user and fan of BC since version 1.

 

But I do not care for the Delphi IDE integration. I use the Explorer integration and have TortoiseGit configured to use BC.

Share this post


Link to post

VS Code's frontend, for example, can run on any device (like an iPad) while the backend (compiler, linter, ...) runs elsewhere (like a computer, the raspberry in my broomcloset or in the cloud).

Share this post


Link to post
10 hours ago, JonRobertson said:

But I do not care for the Delphi IDE integration. I use the Explorer integration and have TortoiseGit configured to use BC.

I wrote my own IDE "integration" using the tools menu a few years ago. Scooter Software actually contacted me about it when they ware approached by Embarcadero to license BC for the IDE integration. I like to think that my simple work was what sparked the idea.

Having said that I don't like the IDE integration either. Its complicated to use.

Share this post


Link to post
7 minutes ago, Der schöne Günther said:

VS Code's frontend, for example, can run on any device (like an iPad) while the backend (compiler, linter, ...) runs elsewhere (like a computer, the raspberry in my broomcloset or in the cloud).

That's not really an editor feature, is it?

Share this post


Link to post

I'd say it absolutely is. You run your editor on any system, and things like inlay hints, code suggestions and compilation itself happens elsewhere. With Delphi/C++ Builder, everything is tied to running locally on a Windows computer.

 

Or are we focusing exclusively on text editor capabilities? I might have missed that.

Share this post


Link to post
4 hours ago, Der schöne Günther said:

I'd say it absolutely is. You run your editor on any system, and things like inlay hints, code suggestions and compilation itself happens elsewhere. With Delphi/C++ Builder, everything is tied to running locally on a Windows computer.

 

Or are we focusing exclusively on text editor capabilities? I might have missed that.

Except you don't run the Delphi IDE on any system. An IDE that is not cross-platform will have limited cross-platform capabilities. Going down that discussion is going off-topic, imo.

 

That said, I agree that an editor having "front-end" capabilities is a good thing. And some of those may depend on integrating with backend services, such as a LSP server, which may or may not be on the local machine.

  • Like 1

Share this post


Link to post

VS Code + C# Dev Kit + .NET MAUI extension for C# Dev Kit is pretty cool. 

.NET cross platform GUI development on Windows, Mac & Linux.

 

Your Operating System Supported Target DEBUG Platforms
Windows Windows, Android
macOS Android, iOS, macOS
Linux Android

 

You can argue that this is not an editor capability - but well, it is a pretty nifty editor that allows pretty nifty integrations.


See also 

 

 

Share this post


Link to post

What I miss in Delphi is caused mainly by buggy/awkward implementation. Structure view is unusable as it always expands fully what is especially annoying when you want to navigate between classes (luckily they added navigation combobox). Method generation always uses alpha ordering while I prefer grouping by meaning. As for inlay hints, I find them handy for dynamic languages but never felt the need for compiled ones.

 

2c's for Delphi compared to another editors...

Currently I use VSCode more than RAD studio and features I really miss from the latter are

1 - subject-aware folding. In Delphi I can fold regions, methods. Other editors I tried only have structure-aware folding - fold level 1, 2, etc. It is really boring and unhandy

2 - sync edit (Ctrl-Shift-J) of a selected fragment. VSCode only can rename a variable (but it must be declared somewhere) or multi-edit but that's not the same.

Share this post


Link to post

I opened Visual Studio the other day and made some edits to a C# module that implements an API interface for our software. We have interfaces in a variety of languages, C++, Python, C#, etc. 

 

I was blown away when VS offered me suggestions for the code I was writing. Clearly it's using some AI library to do this. Honestly, the quality of the suggested code blew my mind. I knew what I wanted to write, and so did VS. 

 

This is only going to get better and better, but it's already amazing. So far as I know, there's nothing remotely like this for us Delphi users. Or would we get this is we wrote our code in an editor like VS Code?? 

Share this post


Link to post
1 hour ago, David Heffernan said:

I was blown away when VS offered me suggestions for the code I was writing.

MSVS does even better that that, it also suggests how to improve your code.

(Well it does for me, but perhaps not for you if your code can't be improved 😜.)

 

Over almost 30yrs, I've written a lot of very useful (ie reuseable) Delphi code, otherwise I would have ditched Delphi years ago.

Edited by angusj
  • Like 1

Share this post


Link to post

One of my favourite was when an editor (obviously not RAD Studio) suggested me to rename a function slightly, so that it would become clearer that the data is processed in a specific way. Meanwhile, Delphis compiler won't even tell you when you're accidentally reading uninitialized values from records.

Edited by Der schöne Günther
  • Like 1

Share this post


Link to post
3 hours ago, David Heffernan said:

Clearly it's using some AI library to do this.

https://learn.microsoft.com/en-us/visualstudio/ide/ai-assisted-development-visual-studio 

 

3 hours ago, David Heffernan said:

This is only going to get better and better, but it's already amazing. So far as I know, there's nothing remotely like this for us Delphi users. Or would we get this is we wrote our code in an editor like VS Code?? 

You can use GitHub Copilot with VS Code.

 

 

My current problem with those AI tools is accuracy (which is less of a problem if you know what you are doing and you are using it for small code snippets completion),  potential legal issues (they trained on open source, but that does not mean that they haven't violated open source licenses), and next question is how much of my code ends up in training data which may leak security sensitive data.

  • Like 2

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×