Komodo Edit 4.0.2 bug and suggestion list on 2007-04-11 ################################################################################ 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 ================================================================================ - If I open a project file, from "File" => "Open" => "File", it closes all the currently open projects. If I then close it, one of the previous project is shown. The same if I close it, until there is no more open project... - Komodo is unable to open some files with some control characters... For example, I tested with a file containing only a \x00 (null) character, and Komodo told me: "File Open Error: Komodo was unable to open the file: foo" (with a blank zone, below the error message... -there should be some details, in this zone, isn't it?). Kododo has special symbols for control characters, so it should permit to open any file, and use these symbols. The file ~/.komodoedit/4.0/host-localhost/XRE/cert8.db, for example, does not open either (I didn't check what was the content, exactly)... Generally, as suggested in a previous list, an hexadecimal editor would be nice, but we should still be able to open any file, normally (and until then, a more specific error message should be displayed). - I cannot reproduce it, but in a PHP class (like "class Foo\n{\npublic function Bar()\n{\n}\n}\n" -well, with a bit of content), the indentation of the closing curly brace of the class method, was autoindented (Smart Indent) one level too high (at the same level as the class closing brace). I checked that there wasn't any unmatched brace, and it didn't seem to be any... well, it seems to work, now, both with the same file, and with a test file, so I might have imagined it ^_^ If I encounter the problem again, I'll try to find more informations about the problem. - Autoindent (Smart Indent) seems to work only partially with XML files... Augmenting indent after opening tags works, but neither increase indent before opening tags, after a prior opening tag (if I write "\n", the autoindent will increase indent, but if I remove the indentation -for any reason-, and append "", then the new tag will stay at the beginning of the line, instead of being indented again -if the user really want to remove the indentation, he will just has to do it after having written the tags, which is not a problem, and a very limited case, anyway), nor decrease the indent when closing a tag... (well, in fact, if I write the tag by myself, it will indeed decrease the indent, but it will use one space, instead of one tabulation (note that I configured Komodo to use tabulations, but even if there was a problem with this, I configured the use of 4 spaces per indent, so the use of a single space per indent is completely wrong -I guess a space was written, instead of a tab, somewhere in the Komodo source code), to indent the tag... and if I use the completion, it will do nothing -two problems, here). - For commands, the "parse output with" option does not seem to work, at least with replacements ("s/foo/bar/"). The original output is outputted to the command output tab, without a change. - In the command properties, if I check "Insert output", then, notably, the "Do not open output pane" and "Parse output with" checkboxes are grayed out (note, BTW, that the select list, for the "Parse output with" option is still half active -you can see the historic, and select a value (well, it does this even when the checkbox could be selected, but is not)). If I close the properties, and reopen them, these two checkboxes are reactivated (the select list stays half active). - If I start selecting some code with the mouse, the selection sometimes 'freeze', and cannot be modified without releasing the mouse button (and using the keyboard, to modify the selection, or trying to reselect everything, with the mouse). Just try selecting multiple lines, and mouve your mouse around... it will probably freeze (I can reproduce it everytime). [In fact, it is just the graphical representation of the selection, which freezes... I can still adjust the selection with the mouse, but the graphical representation is not adjusted, which is really confusing.] - If there is a calltip open, for a function, and the argument list is not closed, and I use the bottom arrow key to go the the next lines, which contain some other code, the calltip does not disappear (well, it disappears after four lines -same with the right arrow key). Well, it is good, when the arguments are written on multiple lines, but it should disappear if the cursor encounter some other code... You already close the tooltip if a ';' character is encountered, but you should also detect, at least '{' and '}' characters, and maybe use the indentation, to decide if the code is likely to be part of the function argument list, or not... - There are highlighting problems in CSS... I don't have much details, and cannot reproduce it reliably, but I had multiple rules like "div#foo-bar {}", and if I removed the closing curly brace, the rules below became purple, but if I readded the curly brace, they sometimes remained purple... (until I removed and readded some other curly braces, elsewhere). When you have multiple rules as quoted, you might also try removing both curly braces, from a rule in the middle of the list, and readding them in order... - First crash ^_^ I launched Komodo from an icon, so I don't know what has been outputted, if anything has... I didn't loose any data, as I save often. Komodo was loaded for a few hours; I was currently opening files one by one, and replacing some text with pasted content... it happened when double-clicking on the fifth or sixth file, to open it... When I restarted Komodo, it tried to load back some files from -I think-, the previous session... it would be nice if the list of opened files was saved regularly... (every few minutes -it is not that important, but it does not cost much either...). Same for anything which might not be saved regularly, by the way (any configuration change, notably, if you do not save them regularly -I already said this in previous notes). - I cannot reproduce it, but I noticed multiple times that the cursor graphical representation sometimes freeze, until it is moved with the mouse... I can still type things with the keyboard normally, but the cursor graphical representation does not move. List of suggestions ================================================================================ - I didn't check, but are all configuration values saved as soon as you click on "ok" -or as soon as you click on a menu option-? (the configuration might also be saved in real time, in a crash recovery file, but that probably shouldn't be necessary for Komodo). I didn't have any crash, but I did have problems with multiple other pieces of software (Eclipse, notably, multiple times, but other kind of software too), which crashed on me, while, or after having configured it, and I loose the configuration, which is quite annoying. - Double-clicking on tabs should hide/close them. Double-clicking on an empty space, in pane headers should hide/close them. - Open source as much things as possible (well, as you mostly use Python, it seems you already have quite an amount of open source code -and a number of compiled code is from free software programs, so I guess not much is left as binary-only code, which is quite nice already), with a license as free as possible (even if only for some extension/component). - It would be nice to have a version of Komodo without any external applications/resources (notably if these applications/resources are free/open software/resources), for better integration into distributions. You ship Komodo with Python, Mozilla (though I don't have a precise idea of how tightly Komodo is associated with the Mozilla code), HTML Tidy, a number of DTDs/schemas, and I think a few other things related to debugging could be externalized too... (Xdebug, for PHP, for example). - In the project and toolbox tabs, when I right-click on a file/directory, and select "Show in File Manager", it uses Nautilus (which viciously create a root window, by default, while launching the file manager part -I now deactivated this). I'm under KDE, but have Nautilus installed, because of some dependency to other installed programs. I checked your koSysUtils.py, and my environment variables DESKTOP_SESSION and WINDOWMANAGER are not set (I guess they are set by xdm/gdm/kdm stuffs, and I don't use them)... though I will simply set them myself, it would be nice to be able to set exactly what file manager to launch, in the Komodo preferences (with Konqueror, you can use different profiles, for example, and it might be useful to permit to specify all this, in the command line to execute). - In the Komodo archive, a number of files are not user-writable... (I noticed this, when modifying the komodo wrapper script, to create patches...), while not a big deal, there is no reason for this, and the files should be user-writable. - In the project tab, the icons to create a new project, and to open an existing project, are not clear at all. I don't know what to use, though. - There does not seem to be any way to open a project file, as a normal file... Even dragging the project file, and dropping it in the editor zone, opens it as a project... (it might become annoying to have to choose, each time a project is opened, so there probably should be a dedicated menu/option, somewhere...). While there should be no need to open them, we should still be able to open them as normal files, to check the content, without having to use an external editor... (if you support opening project files as normal files, be sure to warn about opening as a normal file, a currently opened project... -if the project is saved in Komodo, it would erase all modifications made to the project file). - Could you provide syntax highlighting for .kkf and .ksf files? As for project files, there should not be a need to open them manually, but it could still be interesting, notably to create and possibly distribute a clean configuration... (for this, there should however be some things to do to avoid the clean configuration to be rewrote, without warning, by Komodo... -the most basic solution would be to add a specific flag, in the .kkf and .ksf files, either to say that the file has been autogenerated by Komodo, or that it has been manually built by the user, and Komodo would then warn, or not, depending on the flag). - Syntax highlighting for .ini files (including .desktop files). - Maybe permit to open/use archives in the file opening/saving dialog... (tar, gz, bz2, zip -and jar, odt, xpi, and other common extensions using zipped files-, rar, ace, 7zip, etc., depending on available decompressors). It sure is a low priority feature, but it might be useful to some people. In Konqueror (the KDE file/Internet browser), you can open archives directly, for example (well, in Windows too, for zip archives). - More advanced common syntax styles... I don't see variables, methods (if the language makes a difference, like in PHP, there should be the possibility to use different styles, ), etc., for example... it does not matter if it does not apply to all languages... what matter most is to be able to configure as many things as possible, globally, so the syntax highlighting is as standardized as possible, without having to modify the lang-specific settings of all languages... - Syntax highlighting for .tip files? - When opening a read-only file, there is only a tiny lock, next to the file tab title... "Read-only" should be written in the status bar, in bold, and maybe there could be some more visible, temporary notice... (couldn't you use the notices like in Firefox, with a thin bar, opening just above the content -it should not cover the content, however, so the content should be pushed down temporarily, or something like this, though it's not cute-, and a close button (and, possibly, a timer)...? otherwise, support other kind of mostly-non-intrusive notices, somewhere, like at the bottom-right or left corners, with pop-above... another solution would be to renamed the "Command output" tab to something more general, or add a "Status" or "Notice" tab to the bottom pane, and switch to it, when there is a notice to print -though it might sometimes be more intrusive than the other solutions, but it should not be a problem, when the user is currently opening a file), - Syntax highlighting for SGML files (it can still be useful for DTDs). - The file opening dialog uses the path from the currently active file, as the default directory... while it can be interesting, I think it is generally more useful to use the most recent path opened/saved... (note I use the XUL file opening/saving dialog -"ui.allow_platform_file_picker=false", in the Mozilla configuration-, so there might be some differences with the GTK dialog... if there are, I think you should also support the XUL dialog, because, while far from perfect, it is far better than the GTK one, as many have said). - For the auto-save feature, you should specify, in the preference dialog, that the files are saved in the user profile (it is not the original files, which are saved, and it they are not saved in the same directory as the original file). You should also speicify that these backups are removed each time the associated file is saved by the user. - Support auto-save for projects. - Support additional backups, for projects (well, it seems they are not even saved by the auto-save feature), and for when the user Backup files/projects for the Komodo configuration files, and for project files. I heard on the forum, someone losing work, because of a problem in the toolbox (http://support.activestate.com/forum-topic/loosing-work-again). There should be automatic backup of project files (including the toolbox project file), and of Komodo configuration files. For configuration files, backup all .xml, .kkf, .ksf files. In case Komodo crashed (use a flag to tell if it was properly closed, if you don't already do it), inform the user about the backup files. As the configuration files are quite small, there should be like up to five backups (it can be useful, if the user modified other things, after the problem, before trying to restore things). Maybe use filenames like "prefs.xml.X.tmp.bck" (well, permit to configure the extension), with "X" a number increasing each time, or something like this. For project files, they are generally quite small too (well, if the user added a lot of snippets/templates to the project, it can become significant, though, but there should still be the possibility to keep multiple backups), so it shouldn't be a problem, but you should still permit the user choose to put the backups in the same directory as the project file, or in their Komodo profile directory (some people might not want to keep them in the same directory as their project file -though if they use CVS/SVN, they could easily exclude them, if they would not be already excluded by default). If the backups are kept in the project file directory, they should be prefixed with a ".", to hide them (though you should let the user configure both the prefix and the extension). If they are saved in the Komodo profile directory (like "~/.komodoedit/4.0/project-backups/" -be careful about duplicate project filenames), no need for a "." prefix. - In the project and toolbox tabs (and maybe in other contexts), when you use the right-click menu to delete a file (and maybe in other contexts too), the dialog asking for confirmation does not name the files/directories which will be deleted... it is important to specify it, for double checking... (and in case multiple files/directories were selected, I still think you should list them all... -in a vertical list, for better readability, and maybe with checkboxes to unselect some files/directories, without having to cancel and reselect the correct files/directories to remove). Note that it may be important to list the full path, or at least (well, it should be better, in most cases), the path relative to the project root (or maybe even just the two or three parent directories, if there are more, prefixed by something like ".../", to specify an unknown number of other parent directories -though I think I remeber three dots were used, in DOS, to go back to the root of the current drive, and some other people might confuse it with "../", so maybe another symbol should be used, like "-/"), for example, if the user has a project with multiple directories containing similarly-named files/subdirectories... - If you add a file browser tab (independently from projects), you should support a bookmark feature, to bookmark locations (and maybe permit to associate shortcuts). Well, you could also do it for projects, with global bookmarks/shortcuts to open specific projects, and local bookmarks/shortcuts, to open a specific directory/file in the currently active project... (well, to open files and projects, you can use commands, but it would be better if it was fully integrated). - Komodo freezes for a few seconds, when opening a large file (my 5MB firewall log, for example, so it should be even worse for larger files, with color highlighting and syntax checking...), and there is also a one-second freeze when closing the file... Komodo sure act far better than, say, Gedit, but KWrite opens the file within less than a second, and NEdit opens it instantly. There is no delay when scrolling (as with KWrite and NEdit), even very quickly, so it's quite good. - A created a file with a 1MB line (I didn't test what was the minimum length for problems to start to happen... it could be quite lower). Komodo acts similarly to Gedit, except Komodo does not freeze as much. Without word wrapping, at some point, the text is printed starting from the beginning of the line (above the other characters ^_^;), and it is quite slow to do anything, both with or without word wrapping, that is loading the file (closing it is ok, in Komodo, though), scrolling, etc. (even focusing on another window, and coming back to Komodo). As for large files, KWrite is quite fast, and NEdit loads it just as fast as a one-byte file... While encountering very long lines should be quite rare, there might still be some cases, and Komodo should handle these, as a general proof of robustness. - Add a drop-down menu, in the project tab, to the icon to open projects, to list the most recent opened projects (when you want to open a project, you first think about the project tab, not the "File" => "Recent projects" menu entry -which is also further from the editor zone, the central point of attention, and which requires one more click, and far more eye movement). At the bottom of the menu, after a separator, add a redundant link to "open another project". Note a normal click on the icon should open the project opening dialog as usual. I guess the menu should open on a prolongated onmousedown, or something like this. Same, in the main toolbar, for the file opening icon. Same for the new file icon, which should list all templates, and a special entry for a blank new file -at the top-, and another one, for recently used templates... -at the bottom. For the file opening and creation, it's one less click (and a bit less distance), and it really matters a great deal, for everyday use of an editor/IDE. - Add an option to automatically add and close brackets, and automatically close quotes, notably depending on what language is used, and possibly on the context, and letting the possibility for the user to adjust the behaviour. For example, in PHP, if I write "function X" (the first character of the function name), Komodo should automatically add "()", and keep the cursor to the current position, so the user can continue typing the function name. It should also add "{\n}\n". Same for control structures, though you should permit to users to either place the opening '{' on the first line, or on the second ("if (foo) {\n}", or "if (foo)\n{\n}\n"). If I write "$Foo[", Komodo should add ']'. If I write "$Foo['" or `$Foo["`, it should add "']" or `"]` (well, with the previous rule, it would be done in two times). If I write "$Foo = (", it should add ")". If I write `$Foo = "`, it should add a `"`, etc, etc. If nothing follows some piece of code, and depending on syntax and semantics, it should add a final ";" (not if the line is ending with an opening bracket, quote, a closing curly brace, the control block of a control structure, etc.). - Advanced SQL support. Zend Studio has a complete client. It sure might have its use -instead of using a separate client and testing-, if properly integrated, but some kind of query construction helper -like a regular expression helper-, could be useful, for people who don't master the syntax (well, just like for regular expressions, it sure might be better to just learn the syntax once and for all)... What could be great would be to be able to get a pop-above on SQL queries in the code -taking into account variables names, basic string concatenation, etc.-, which would format the query on multiple lines, for easy editing... when done, it would put the query back in the original format ^_^; (I don't know how you handle regular expression with your toolkit, but it would be great to see something like this too, instead of an independant window...). - Zend Studio has the possibility to create "links" on functions, for example, to go where they are defined... (I guess they also support variables, classes, methods, etc.). I see Komodo as a "Go to Definition" shortcut... does it permit to go to definitions from another file? (included, or in the same project... -AFAIC, I have an automatic class loader for PHP, so I don't have any include for classes). I don't know if Zend Studio supports this, but I guess they do, and it sure could be useful. (By the way, with the "Go to Definition" shortcut, when you are already on the definition, the status bar shows an error which is not clear at all -I guess you didn't support this cas... there should be a clear message, like "it seems you are already on the definition"...). - Zend Studio has a code profiler for PHP (notably with the possibility to time and count everything). - When there is multiple open projects, add the possibility to move a project up and down, in the project list (you can already drag and drop them, and all, but they aren't moved). - In RELNOTES.txt, add a blank line between each item of lists -except if each item (or the large majority of items) fits on a single line-, add a second line at the end of each section, and, possibly, add more separation between sections -lines of "#####", "=====", or "-----", depending on the hierarchy level, between sections, or just below section titles. This applies to the other text files as well. It's better for readability, and to find a section more easily. - In RELNOTES.txt, for example, for the entry about default proportional and fixed-width font problem, associated to bug 27206, I get: "Permission denied. Sorry; you do not have the permissions necessary to see bug 27206", from your bugzilla... it does it for a number of bugs listed, which is a problem if someone want to follow something, or find more informations. Also, a nuber of entries do not have an associated bugzilla id... while not that a big deal, it would be nice to have an id for each and every problems, so we can follow the possible resolution (if someone really wants to get news on an issue, he should try to search on the bugzilla himself, and, possibly, create a new report, but it would be more simple to already have a bugzilla id, for all issues listed in RELNOTES.txt -even if with just the same text as in this file). - For the "Open/Find toolbar", if the "in" field is blank, it should be filled with the active document (and maybe changed, automatically, if not manually modified, if the user switch to another document). Also, the drop-down menu of this field is filled with the files from the current directory of the active file, but if I select a file which is not opened, the search is done in the active document, which is not good (it should open the requested document). Finally, I don't think it the menu should be filled with the files from the current directory... (I don't quite see the use -if you need to search something in a document, you generally start by opening it). Instead, it should probably list the currently opened documents, but the field should probably just be removed as too redundant (well, the interface speaks of search in multiple documents, and even folders, by adding files and directories separated by a colon, which could be more useful, but it simply does not work: it only searches in the active document... if you make it work, you should add an option, in the right-click menu of files and directories in the project and toolbox panes, to search something in this file/directory, and it would copy the path to the search list... -certainly add a second option to append the path, instead, and also permit to select multiple files/directories, to copy/append in one time (though it would be better to have a real list, rather than a single-line text zone)). There is also a problem with using colon-separated values for the search list, and the drop-down menu for paths which won't be used for the search... we you talk about a list, the user will generally think first about the drop-down, rather than using colon-separated values... maybe you should simply remove the drop-down menu... In conclusion, you should probably drop the "in" field, and readd it to the search dialog... as it stays above the Komodo main window, but you can still select files from the project/toolbox tabs, you could easily add files to the list... (which would then be a real list, with the possibility to easily remove one or more items, and add items using drag and drop, and an "add file/directory to the search list" button). When there are results in multiple files/directories, you should then list the results in the same dialog, in a result list field (like a dedicated file search program), with the possibility to easily open the associated file, to the specific line, with proper highlight, and to find occurences in the same file... [err... ok, I just found you had to press "enter" in ther "in" field, to have the search results listed in the bottom pane... highly unintuitive behaviour, and not properly documented :) having the list in the bottom pane is indeed nice, but the usability should really be improved... there are also strange characters in the results... is that "NL", for "new line"? these symbols should just not be listed, except if the search terms are broken on multiple lines, or if you support regexps, and the regexp specify new line characters...] - For the "Open/Find toolbar", add the possibility to highlight all occurrences... (probably a checkbox, and you could check/uncheck the box at all times, and it would highlight or unhighlight the occurences...). - In my 2007-03-25 list, I was talking about an "Highlight all" button, for the "Find" dialog... There should be a similar button for the "Replace" dialog (to highlight all occurences, before a possible replacement). - With the "Open/Find toolbar" (and maybe with the search/replace dialog too), when Komodo found all occurences, it opens an alert dialog, and you have to click on "ok" or press enter to continue... If you add a non-intrusive (but just as visible) notice system, you should better simply notice the user that all occurences were presented, and that the search restarted to the first occurence. An alert dialog is too intrusive. Same for the "Find & Replace" dialog (and it is even more important, because having two open dialogs starts to become hard to follow -taking into account that the center of attention is the text in the main window, not the dialogs...). Note, however, that when replacing things, the alert that Komodo replaced all occurences sure should be very visible, and make the user stop, because, depending on what is searched for, it might cause problems when replacing (e.g., when searching "Foo", and replacing it -maybe not everywhere, so the user has to check each occurence, and cannot simply click on "Replace All"- by "Foobar"... if the user does not notice Komodo started searching again, from the beginning -more complex search, tiredness, highly-repetitive stuff, etc.-, he might replace "Foo" multiple times, it becomes "Foobarbar", which probably isn't what the user wants). - In the "Open/Find toolbar", for the "find" field, there should be an entry, in the right-click menu of the field, to clear the history (same for the find and replace dialog). - After having done a search using the "Open/Find toolbar", using the enter key in the "in" field, you cannot seem to be able to close the "Find Result" tab, in the bottom pane... there should be close buttons on each tab, and/or a right-click menu. - With the "Open/Find toolbar", if using the enter key in the "in" field, for a single document, even the active one, it uses the "Find Result" tab, in the bottom pane... if the document is active, it should act as usual, that is to show the results in the document... if the document is already opened, it should switch to its tab... if it is not open, it should simply open it... no need to use the "Find Result" tab, for a single document... (though there might be an option to still use it, as it sure can make it easier to find information, depending on what you want to find). - When searching for something, it sometimes happen that a line or block of code contains a lot of occurences, but you know they are not what you want to find... maybe there could be some button/shortcut, to skip directly to the next line or block... - In the "Find & Replace" dialog, when a search is already shown in the "Find Results" bottom pane, there is a checkbox "Display results in Find Results 2 tab", which is confusing... it should be rewritten to something like `Display result list in Find Results tab, in the bottom pane`, or something like this (if you think it is too long, remove "in the bottom pane", I guess)... possibly "[...] in new Find Results tab, but I don't think allowing multiple tabs is that useful... (and it does not works, for now, anyway... when the box is checked, it still show the results in the document). - When creating a file, a no template is selected, it should simply create a blank file, instead of graying-out the "Open" button (and it should take into account the possibility that no filename was specified either -it already takes this into account, when using a template). - In the new file dialog, you cannot see/select templates which are located at the root of the template directory... (they have to be located in subdirectories)... it would be nice to be able to see/select them. - In the new file dialog, there should be another way - In some drop-down selects (for example, new file dialog, for the directory where to create the file, or in the "Open/Find toolbar", for the "in" field, for past search lists), you use file paths in italic... just don't, it is highly unreadable, for file paths. - In the new file dialog (and maybe elsewhere), add more controls to navigate between directories... there should be a button to go to the parent directory, to the home directory, to the root directory, and to navigate easily between sibling directories... you have "local" and and "remote" buttons, but it means opening a second dialog, and having to use, in total, three different dialogs, to open a file, which should really be avoided. In understand that you might not want to have too many elements in the basic new file dialog, but there is no other way. Well, if you merge files and directories, you will need only two main elements (the list of files and directories, and the list of template files and directories). - In XML files, word wrapping can cut tags anywhere, which is not cute at all (and not readable ^_^). For example, it can cut "<" and "br/>" (don't forget to take into account XHTML 1.0, where we generally use a space between the tag name and "/>", for empty tags), and "". Same for attributes. Do not cut between the attribute name, the equal sign, the opening quote, and the first word of the attribute value, not between the last word of the attribute value, and the closing quote (well, it seems quotes are ok, but word wrapping can currently cut on either side of the equal sign). It should also avoid cutting between an opening tag, and the first word or subtag which follows, and conversely, for closing tags (except, of course, if the first word is longer than the window length -a long URL, for example). Same for comments (taking into account a possible space between the comment opening/closing tag, and the first/last word). For example, if I have "