Is anyone interested in these flaws in the editor (and debugger)?

Hi!

I’ve been coded some 1++ million lines of code in the past 40 years on 70+ programming languages on 6 different platforms including supercomputers.

This means that I completely understand how complex and difficult to build such a system like Anvil.

I code with the highest efficiency (and there’s a lot more to tell about how I do my

I found the following things are missing from editor:

  1. code completion sometimes handy (e.g. when importing from forms) but it is rather weirdly insufficient for fast coding:
    (a) autocompletion for (), [.] or {} DOESN’T work in general compared to what VSCode or Wing can do, (Btw, I always turns off () related stuff and similar autocompletions in any IDE because they never work properly. I never seen in any IDE that ever worked in this matter. Simply who construct has too few experience in coding and can’t imaging many different ways how code can be edited, especially occasionally or at high pace.)
    (b) It is unable to find simple keywords like “return” or “True” or “False” and most of the Python keywords as far as I experienced.
    (c) Whenever something is already typed in the beginning of a line, autocomplete never find anything except if it has = or ( or similar after the letter. E. g. typing “a jq” to trigger “jQuery” after it won’t trigger any keyword. (At the end of a line it finds the usual autocomplete entry or after a special symbol. It should always find it.)
    (d) It adds () almost always when it is totally disturbing and shouldn’t be added at all. E. g. I add a function name as a callback and the idiot always adds “()” that I must remove. A few hundred times I had to remove it already. (On the other hand, let ME decide when I want to write what, not an idiot like a machine. An autocomplete functionality is ONLY as good as it HELPS not disturbs or messes up code all the time.)

  2. Pasting code never worked as far as aligning Pyhton code indents are concerned: E. g. if I write a “def …:” code, I may add another “def …:” code just below it and that next line shouldn’t be indented at all because that will be a def on the same indent level.
    It occurred with if statements too.
    Somehow, it never indented correctly my pasted code. (Well, incidentally, 5 % of cases.)
    Again, I HAVE TO DECIDE what I write not a dumb machine.

  3. There is not way to navigate the main code structure: e.g. to see what def are in code or what functions are in JS code. (And classes and their main parts.)
    Without is, I always must page up/down where I want to add a piece of code. Also showing in what def/function the caret current is located is a feature often to be used.
    This shouldn’t be a too complex code structure / navigation facility because the code constructed - hopefully - won’t be too complex.

  4. Going back and forward to previous places (code edition points) in code is not supported. E.g. by pressing Alt+Left/Right.

  5. The column number in code editor can’t be see anywhere.

  6. More or less minor issue: Ctrl+C doesn’t work in the debug console. It won’t copy off the code experienced. Triggering local menu with mouse however works. (I rather don’t use it.)

  7. I think an intelligent code editor (for JS, HTML and Python) must have at least 50 setting available to customize the editor.
    One may be to add often used keywords manually to autocompletion to trick any improperly working autocomplete case with ease.

I would prefer the following simple solution: adding keywords to the top of the autocomplete list manually in settings. This may not work all the time but is in general more handy for me than what the smartest AI (code) autocompletion can ever do. (That’s a joke that AI could ever generate any code of real value for professional users. People who can’t code can eat it with ease. But I question the skill, knowledge and intentions of those who try to feed people of such BS. These “smart boy” are so smart that they never understood the fundamentals and are free to totally mislead inexpert people and create huge confusion.)

  1. About the debugger autocomplete: it has not any value but always disturbing and never finds any existing variable names, but enforces some strange keyword.

  2. What I miss from debugger is to hover over a variable name and see its value. Or to select a part of the code and evaluate it and show its value (as done e.g. in DevTools in Chrome).
    I can understand that this may be pretty complex to implement. Yet, many debuggers has this feature and it is pretty much essential.

  3. Some additional issues: please, don’t create PEP or lint-related warnings without the ability to turn them off. I won’t ever follow but a few very crucial PEPs. Most of them are useless. Linting in general belong to the waste basket. (First, a human language[s] must be extremely well understood and used. Then someone need to completely understand the fundamentals of software. Then we may talk about what linting should do. Otherwise, it is just total waste of time. A programming language does what it does.)

  4. Full keyboard navigation of the IDE (almost) all functionality is not supported. Including to customize any shortcut key / operation.
    E. g. Ctrl+B is often “Set breakpoint” not to show any menu.
    A shortcut key to start code in a new tab is missing to amongst approx. 50 other at least somewhat useful shortcut keys.

  5. I fairly often experienced that the last editing point in code isn’t recovered. Normally it works, the caret is at the last position where it was before closing the file but fairly often it is lost.

  6. I had to relocate the Anvil logo from top left corner to elsewhere because I clicked. (But I wouldn’t click it if everything is accessible using shortcut keys.

  7. Anyhow, I still have a solution: I still can patch the Anvil editor with my own editor on the website. It is a big complicated because I will need e.g. find a correctly working language server and an editor and place it over the current editor and link the two editors together: what I type in the customized (properly working) editor will be automatically put into the normal Anvil editor. (I can patch the debugger console too.)
    It needs approx. 120-250 hrs work to correct what is missing (and can be remedied with approx. 20-40 hrs of work when someone has the source code for it and knows his/her stuff). (Btw, I always use e. g. JS components that I have the source code or I have to reverse engineer it because I never see any component I used often that had no error. Some only extremely seldom.)

  8. There is a way to create a GUI fast but that is rather a text editor with correct autocomplete. (Similar to a few helper that I use occasionally with Bash when it autocomplete almost all bash commands or system commands correctly.)
    But in these case the “language” is strictly related to creating a GUI.
    Eg.

cf form name

to create a form.
And then opens up a text editor where I enter

afp v:d b:“1px solid red” bg:#ccc os oh

to create a flow panel with visibility disable with a border and background provided and it automatically show and hide functions.
Entering these to create a flow panel on the form open is way much faster for a practice individual than messing with the toolbox. And in fact, I almost need only to provide what I actually need. It is totally concise and fast.

In this way, the split mode of the IDE can make sense. Currently, for me, it is not useful at all.

In fact, a similar approach could be used to define the database fast and probably the whole app.
Anvil then could be used really fast.

What I really miss from the database part is to add comment to fields and to the database table.

  1. I would mention a few policies to construct and editor.
  • Anyone who creates such automations MUST be aware of the fact that how code can be edited especially very fast and those annoying totally useless automations are just to inhibit (in fact, completely stops) fast work. Over the years I several times damned top software developers (who designed different IDEs) to the deepest hell due to the fact that what they can comprehend to the slightest degree how code can be constructed in several different ways fast. These “top guys” knew nothing (!) about efficient coding at all. (No matter if they are in business for 20-30 years or more. They still had not the faintest idea about efficient coding.)
    In 2-3 mins I can test out any editor pretty fully and tell if it is usable and to what degree. It more than a few years to experience out all available IDE to get their strengths and weaknesses.
  • IN AUTOMATIONS AUTOMATE ONLY WHAT IS ALWAYS DONE. If these estimates and assumption are wrong (short sided or incomplete), the end result will be useless and always annoying. In summary, I hardly found any editor that worked without customization.
    (E. g. I would NEVER furnish any job to Power Automate or similar automation software. Amongst other things, their error handling is highly insufficient and you will know that there was an error only days, weeks or years after it had worked incorrectly. - But people are not even care about whether it worked correctly or didn’t. - You CAN’T fully control the whole sequence of activities in these cases. You don’t have fully control over what is done and what are the results in detail. So, that will never work, no matter how many billions of people may consider or are convinced otherwise. It just never worked and never will work if they oversimplify it.)
    All estimates about how to code fast - and with comfort and precision - are wrong. (I surely checked 100+ editors and IDEs over the years.)
    What I currently use is customized and works fairly well.

Well, this is the summary of the IDE related features of what I miss.

George

Hi George,

It’s great to see new Anvil users being active on the forum, sharing feedback, and suggesting improvements. I hope you’ll keep that enthusiasm for a long time.

That said, a small piece of advice: posts like this can start interesting discussions, but they rarely lead to real changes. The Anvil team does read every post, especially when several users join the conversation. Still, a post needs to be specific for the team to act on it.

Here are a few suggestions:

  1. Writing things like this:

…doesn’t help much. Every software has bugs, and saying “sometimes it didn’t work” is too vague to reproduce.

A clearer way would be something like:

Clone this test app, select function y, press Ctrl+C, put the cursor at the end of function y, press Ctrl+V → the indent is wrong.

That kind of example makes the issue reproducible and immediately actionable for the Anvil team.

  1. This sounds like a bug report, but everything works as expected, so it can’t be a bug:

A better way is to create a feature request like:

Please add shortcuts to navigate to previous locations.

  1. Combining many unrelated points in one post reduces its impact. At best, you’ll get a reply about one of them and the other points are forgotten; at worst, people might skip it entirely because it’s unclear what it’s about. It’s usually better to write one post per bug report and one per feature request.

  2. You don’t need to mention how long you’ve been programming — clear, focused posts get attention regardless of experience.

  3. Before calling something a bug, it often helps to ask if it’s expected behavior, explain what you expected, and see if others can confirm or suggest a workaround. If the team agrees it’s a bug, they’ll move it to the right section.

I’ve reported hundreds of bugs here; many were fixed quickly. None needed me to mention experience or call them “bugs” — clarity and reproducibility were enough.


The fact that this is the first answer to your long post, and it doesn’t address any of the points you brought up, shows that bringing up too many topics at once makes it harder for others to engage effectively.

In short:

  • One issue or feature request per post
  • Make it reproducible
  • Keep it concise and specific

That approach makes your feedback much more valuable and easier for the team to act on.

4 Likes

Dear Stefano,

Thanks for your appropriate response.

In fact, I had to summarize these all first to see me what to do.

You can see that there is a point that I wrote close to the end, two key points that is my own reflection to the situation. E. g. how I could solve it no matter what because these are important points to me, many of them are just fundamental.
That’s why I took the time to wrote them down and work a solution out.

Yes, I can split these to different subjects like Bug reports, Feature requests, etc. (I just discovered yesterday that there is a topic called “Bugs” because it was hidden.)
My post is about 50 different things if we consider it thoroughly but in fact builds around one main topic, the code editor and the interface.

Meanwhile, I found a few additional points that I will add later.

Probably, I will file each of these into “1 (sub)topic goes to 1 post” manner.
Because I aware of the fact that those can only be processed. (Yet, anyone could split these into the 50 subtopics I mentioned but computer systems are rather unable to deal with that except the one I’m preparing.)

I will refer to my original post as I saw this functionality and split the main topic.

Thanks again.
And that is a good news that staff reads all posts.

Tonight I will start this splitting and filing each of them as a separate concern.

George

Yes, it’s hidden for the reason I mentioned earlier: forum users don’t decide what counts as a bug. The Anvil staff reviews posts and moves confirmed cases into that category.

For example, I’ve reported some that were clear bugs like this and others that could have been intended behavior like this.

It’s up to the team to decide which ones belong there — that’s why the section isn’t directly visible to everyone.

Another reason is that once a bug is fixed, the post no longer helps future readers, while regular forum threads remain searchable and useful for anyone encountering similar situations later.

1 Like

Thx!

(this is just scrap to fill the 20 chars min. limit in reply)