Komodo Edit 4.0.2 bug and suggestion list on 2007-04-12 ################################################################################ My system and installation (for information) ================================================================================ (Same as for my first and second list of problems and suggestions) - CPU: P4 3C. - RAM: 1GB. - OS: Gentoo Linux. - sys-libs/glibc-2.5 USE="-build -glibc-compat20 -glibc-omitfp -hardened (-multilib) +nls +nptl +nptlonly -profile (-selinux)" - sys-libs/lib-compat-1.4.1 USE="+sdl" (note that on Gentoo, this version supports both C++ libc-5 and libc-6 compatibility) - x11-libs/gtk+-2.10.6 USE="+X -debug -doc +jpeg +tiff -xinerama" - I used package Komodo-Edit-4.0.2-275451-linux-libcpp6-x86.tar.gz (with the official installer, for the problems not related to the Gentoo Linux ebuild) List of bugs and bug-like problems ================================================================================ - In the "Find & Replace" dialog, the "Match whole word" option does not seem to work properly with non-ASCII letters... For example, if I try to find "id", with the option being checked, it will match "idée"... - In a previous note, I talked about the editor scrolling when saving, when word wrapping was activated. On a similar matter, when I click on "View" => "Scroll Current Line to Center of Screen" or "Scroll Current Line to Top of Screen", with word wrapping activated (and long lines), the editor scrolls far too high... (well, I guess it depends on the number of lines being word-wrapped). With word wrapping deactivated, it scrolls correctly. - Code folding markers (I mean, in the dedicated icon bar) do not seem to appear consistently... (neither with anonymous "{ foo; }" blocks, nor with functions/methods, nor with if-then-else constructs...). I sometimes have to modify a block (like adding a space character), so they appear for this block... (note that they might -but not always- be already present for some blocks in the file... the problem is that they are not present for all blocks, consistently...). It seems that if I modify a block followed by (or containing) other blocks, then all these blocks will get their folding markers... It's probably a problem when loading the file and initializing the folding markers... - When I have a very long word-wrapped line, and I want to select it with the keyboard, by selecting the first word-wrapped line with the shift key, and then using the bottom arrow to select the following word-wrapped lines, then, sometimes, Komodo selects two lines at once, instead of one. - I don't quite remember if I already talked about it in previous lists, but, sometimes, the cursor representation is freezed somewhere in the document. We can still move the real cursor, but the cursor representation does not follow the real cursor location anymore. The cursor representation can be unfrozen by changing the cursor location using the mouse (and probably by other means). I cannot reproduce it precisely (I'm always surprise dwhen it happens, and it is always when starting to write something, so I generally forget about the problem, and think only about how to unfroze the cursor, instead of taking the time to take note of why this is happening... ^_^;), but it does happen quite often. If you don't already know this bug, I'll try to find more informations about it. - Related to the word-wrap problem, when saving a document, described in previous lists, there is also some problem when using the Find and Replace dialog, to search for something... the highlighted match might be located below the currently visible part of the document... With word-wrapping deactivated, the highlighted match might also not be visible, because of horizontal alignment problem (in one case, the highlighted match was located a bit on the left of the currently visible par of the document). Another related problem: when closing and reopening a document, or Komodo, the document is scrolled to where is would be without word-wrapping. List of suggestions ================================================================================ - For JavaScript syntax checking, function names should be able to contain non-ASCII characters... (ECMAScript v3, JavaScript 1.5). Currently, if I include a 'é' character, for example, it will tell me it is an illegal character. - For JavaScript, you do not seem to suggest variable name completion for function arguments, when the variable was defined as one of the function parameters... nor in fact, when the variable was defined normally, in the function body... - When clicking in the line or icon border, to select lines, the selection does not seem very consistent... We should be able to select lines properly, even when clicking in these two borders... (although, for the icon border, you might, instead, allow (un)bookmarking a line by clicking there... -it is where the bookmark icon appear (well, if there are other icons which might go there, it might be a bit confusing... in all cases, we should be able to unset the icons by clicking on them... as for setting them, maybe there could be an option to choose which to activate, or maybe select automatically depending on last icon modified, on the same line or globally... or maybe a special left-click menu -with a special option to unset the icon, then- to select the icon -there is already the generic right-click menu, but it would be nice to have a special menu)). - In the right-click menu, in the editor window, for "Toogle Bookmark", you should add the bookmark icon, to permit spotting the option more easily. - In PHP, complete array keys, with already used keys (it does not matter if they have been unset elsewhere... nor to only suggest the keys used with the current specific array... as said in previous notes, you should not be too specific when suggesting things...). - In PHP, complete full statements... for example, if I already used "$Foo['Bar']['Test']", and I write "$F", you should suggest "$Foo['Bar']['Test']", "$Foo['Bar']", and "$Foo". For functions/methods, you should suggest the previously used arguments, in the same manner (full argument list, only the x first arguments, or only the function/method name). Even if the exact statement might not be used as is, it is still useful to be able to insert everything in one go. - Using filter symbols in the project (and probably in the toolbox too) is really slow, when the project has lot of files and directories. I guess this is a problem with the general slowness of the file trees... - I might have already written this in previous notes, but, in PHP, class names and method names are both "identifiers", for the syntax highlighter. When writing things like "Foo::Bar()", the separation is not that clear, as the style is the same. - In PHP, keywords "true", "false", and "null", are case-insensitive. They should be styled whatever their case (currently, they are only styled when all in lowercase). For control structures like "if", "then", "require", etc., I cannot find informations about case in the manual, but they do work, whatever the letter case, so you should style them too. - When dragging file tabs to move them in the tab list, it is not clear enough where the tab will be... There is currently a vertical bar, but it is not visible enough, and when you got more tabs than room in the tab list, it becomes very hard to follow the vertical bar, as the tab list is being scrolled horizontally. There should be a tab representation, below the file icon being displayed with the mouse cursor, and the horizontal bar should be far more visible. If possible, the active zone to drop the tab should be larger (the tab list is too thin, it makes it hard to drop it -and to make the vertical bar appear, so you know where it would be dropped, as the vertical bar disappear when you leave the tab list (this sure is logical, but as the tab list is too thin, it is hard to drop the tab...)). - It seems the line bookmarks are not saved, when restarting Komodo... (well, neither when simply closing the file and opening it again...). if this is not a bug, you should save them. - Code folding should be cuter... currently, it eats the white line after the folded block, and it leaves an unmatched curly brace (the opening curly brace for PHP blocks, for example). Code folding should kept white lines outside of the block, and folding should be more advanced and more clear... For example, if I have "if (foo) {\n\tbar;\n}\n\n", I would like the code to be folded as "if (foo) { [...] }\n\n", with "[...]" being a dedicated icon (recognizable as an icon, with a border and background...), representing this sequence of characters. When you click on the icon, it would unfold the code. If simply hovering over the icon, it might show a tooltip with the code (well, only the first few lines -with a proper indicator notifying that these are only the first few lines of the code-, if the folded code is too long). You should also support the different kind of block presentation... like "if (foo == bar)\n{\n\tfoo;\n}\n\n", which should be folded as "if (foo == bar)\n{ [...] }\n\n" (the opening brace should stay on the same line it is on, to avoid too much disruption -well, it is already how Komodo works). - In XML, when you complete attribute names, you should append `""`, after the equal sign, and put the cursor between the quotes. In XML, attributes *must* be quoted. Same for XHTML (which is XML-based). For HTML, it is recommended to put them, and I cannot see anyone not using them if they are inserted automatically, so I don't think an option is even needed... If you really think some people might not want them, well, create an option, but it should be a non-default option (put quotes by default). - In XML, when completing closing tags (after having written "", instead of "", when the ancestor tags are "", "", "", "", "", but if I modify the "" element to "", I still get "" as the only suggestion...), and nothing else... (i.e., not the tag I just opened...). Note there is no problem in the document, no other mismatched tag, no typo, etc. If you cannot reproduce it, I'll try to create a test case. - With the Find and Replace dialog, when clicking on "Replace All", it closed the dialog automatically... it should not, as we might want to replace the same things, in another file, or do some other replacement, and having to reopen the dialog is a waste of time. - In the Find and Replace dialog, the dropdown boxes for "Find what" and "Replace with" are not properly aligned, horizontally (on both sides). - In the Find and Replace dialog, there is no "Find Previous" button. It would be very useful. - When searching for something, using the Find and Replace dialog, when nothing more is found, I get a dialog saying so (I already criticized the dialog in a previous list), and I get back where the cursor were previously located... While this might be discussed, I think it would be better to leave to user on the last match (where he previously was, when he last clicked on the "Find Next" button, instead of where he was when he started searching...). However, when I click on "Find All", you might indeed send me back to where the cursor was previously located, as you are currently doing (the search being independent from the location of the matches). - You should associate *.php{3,4,5,6} to PHP syntax highlighting, by default.