CrowTDE

Summary

CrowTDE is an open-source Tcl/Tk development environment written in Tcl/Tk. Its purpose is to provide a convenient environment for Tcl/Tk programmers. Currently CrowTDE runs on Linux and Microsoft Windows, while we are try to retrofit further versions which will run on more platforms as well as more features in the near future. Hope you will like it.

Obtaining

sourceforge
Version 0.5, latest version as of 2007/03/15, support Subversion

Features

  • Supports source code debugging (breakpoints, stepping, watch variables, and more).
  • Project manager (easy to organize projects, folders, files).
  • Procedure navigator (fast location and jump to procedure).
  • Multifile editing.
  • Colored syntax-highlighting.
  • Interactive syntax completion.
  • Easy to Run/Stop Tcl/Tk scripts (just click on toolbar buttons).
  • Native language support.
  • Support for Nagelfar (static syntax-checking).
  • Support for Starkit (generate binaries for Windows or Linux).
  • Integrated Tcl/Tk documentation.
  • Autoindent/outdent block selection.
  • Integrated MP3 player.
  • Code templates.
  • Graphical search tools (easy to search files and search in files).
  • Find/Replace keyword in editors.
  • Support for Subversion.

Historical

The following information is obsolete, but is kept here for historical purproses


MEd: Hm, I created a new project and now get an error when I try to add a blank File (File -> New -> Blank): Error: invalid command name "::inputDlg::show" It now works after I added package require inputDlg to CrowTDE.tcl

CrowMan Thanks, the bug already fixed.


escargo 2006-03-06: This is interesting, but does it really need to have threading? What features would need to be excluded if no threading is available? (I probably don't need an integral MP3 player ;-)

CrowMan: If no threading: Proc explore, Syntax-highlighting and some features will fail.

escargo: I downloaded the CrowTDE_v0.1_beta code, but running it on my ActiveState 8.4.11 installation fails with the "package require Thread" command. I see that the "package require snack" is in a catch block. Would that make sense for Thread as well?

Requirements

Verified working by CrowMan on ActiveTcl 8.4.11.2 (Windows)

MEd: It works fine for me: ActiveTcl 8.4.12.0

Questions

male: 2006-04-24 - Could someone please point out, where to get a multi-threaded tdom version?

I have a tdom 0.81 version, but it is single-threaded and ... the www.tdom.org website only provides "old" sources or DLLs of the version 0.80. Perhabs someone can send me per eMail the current, multi-threaded version?

Thanks,

Martin

CrowMan 2006/04/24 - Maybe you can try to get tdom0.81 from ActiveTcl (version 8.4.13). UKo 2006-04-27: dqkit is a threaded tclkit on steroids and includes tdom 0.8.1


male 2006/04/24 - Ok, I just found the problem. It is was about having tdom 0.8.0 and 0.8.1 and always tcl tried to load the 0.8.0 version.

But know there is an error during startup:

 invalid command name "TreeCtrl::SetEditable"
    while executing
 "TreeCtrl::SetEditable $tree {{colFileTree style txt}}"
    (procedure "::fmeProjectManager::tree_init" line 24)
    invoked from within
 "::fmeProjectManager::tree_init $path"
    (procedure "::fmeProjectManager::init" line 8)
    invoked from within
 "::fmeProjectManager::init $fmePrjMgr.body"
    (procedure "::fmeTabMgr::init" line 12)
    invoked from within
 "::fmeTabMgr::init $lrFrame.fmeTabMgr"
    (procedure "::crowTde::init" line 180)
    invoked from within
 "::crowTde::init """
    (file c:\temp\crowtde-0.1.3\CrowTDE\CrowTDE.tcl" line 383)

CrowMan: Can I know what version of Tcl/Tk you have? What is't your Tktreectrl version?

male 2006-04-24: Ok (again), I had in "my" tcl library path the treectrl versions 1.0, 1.1, and 2.1. After deleting the really old ones, CrowTDE started. Thanks!

Now I'll try out a bit!


CrowMan 2006-04-27: I had to try creating CrowTDE-starkit and running with dqkit (on WinXP). It can run but has some troubles. Can someone help me ?

  • Slave thread can't access vfs file from parent thread.
  • Some tcl command can't work fine. (Ex. exec source)

CrowMan 2006-04-27: I had fixed up those problems. ^o^

How to Install On Linux

  1. First, you needed install required packages. (source archive include all you needs, but tcl/tk)
  2. extract the archive (vvv is the version number)
$ tar zxvf CrowTDE-vvv.tar.gz
  1. change to the CrowTDE directory
cd CrowTDE
  1. start CrowTDE
$ wish CrowTDE.tcl    
  1. Enjoy!

How to Install On Microsoft Windows

Easiest method is download ActiveTcl 8.4.12 (or above) version, then, after finishing the installation of ActiveTcl 8.4.12, just double click the CrowTDE.tcl icon ^.^!

Screenshots

On Linux

https://a.fsdn.com/con/app/proj/crowtde/screenshots/80740.jpg/max/max/1

On Microsoft Windows

https://a.fsdn.com/con/app/proj/crowtde/screenshots/80744.jpg/max/max/1

Comments

RLH: While I wouldn't want an mp3 player...it looks nice.

CrowMan: If you have not install snack library, mp3 player will disabled itself.


schlenk 2006-04-15: I played a bit with CrowTDE and found it really nice and with a polished UI but missed some of the nice features from ASED. Suggestions:

  • Add static syntax checker based on nagelfar.
  • Add direct links to tcl documentation when marking an option or command an pressing a key or in the context menu.
  • Display the list from package names when writing a package require command.

MEd 2006-04-15: Have you ever thought about creating a CrowTDE-starpack? Would make the application even more attractive - at least for me ;-)


CrowMan 2006-04-16: We are try to retrofit further versions which will add these functions. Thanks! ^-^ ~


What about a starkit?

UKo 2006-04-27: to try out CrowTDE on linux without changing my global tcl installation I tried to run it with the help of tclkit. After finding a threaded version with dqkit I have to make only a small change to make CrowTDE run smoothly.

I don't know why, but dqkit gives a memory access error when loading package img::png but tkpng runs just fine and works with CrowTDE. So I copied the package to lib, replaced the reference to img::png in lib/crowImg.tcl with tkpng and removed the one from CrowTDE.tcl -- and it worked!


GJS: Great editor, I just have a couple suggestions.

What about making the help load in the tabs, the same area as the editor windows, and making it so you can raise the tabs to the desktop so you can view a document in the main TDE window and one in a separate toplevel child. this would be especially nice with multiple monitors. It would allow you to put the help on one monitor and the editor on the other monitor.

It would also be nice to be able to reorder tasks, or have a task priority, and to be able to hide finished tasks, and search tasks. Task state could be "Not Started", "In Progress", and "Finished".

CrowMan To GJS : Ok! I will try . Thanks your suggestions . ^o^


schlenk 2006-04-29: Some more suggestions and some small noticed errors.

  • Add the ability to use a tab of 4 spaces instead of the default 8 spaces, as much Tcl code is formatted with tab 4
  • If one does not open a project but only a single file, the options for save/save as are not available from the menu
  • If one deletes a file from a project that is opened in the editor pane strange effects occur, while trying to close the currently edited file.
  • The package prototype is a bit unidomatic, there is really no real reason in Tcl to use an init function with:
::pkgname::Init {argc argv} {}
 probably better:
::pkgname::Init {args} {}

and then parse that for arguments and options.

  • It would be nice to add support for *.test files containing tcltest code for parts of a project and maybe some templates for a basic tcltest file (see for example http://www.tclscripting.com/articles/apr06/article1.html or the testsupport code in tcllib)
  • If your at it, consider adding the graphical testrunner from tcllib/apps to the TDE for running tcltests for a project in a graphical frontend

CrowMan 2006-04-29: Thanks your suggestions. First, we will to fix the "4 spaces of Tab", "single file save/save as", "delete file" and "argc argv" problems. Others functions for TDE, we will addition to near future version.


pcam 2006-07-25: Refresh issue

Maybe this is not the appropriate place to do this (a bug reporting and tracking ala sourceforge would be excellent). I noticed that with ActiveTcl 8.4.12 running version 0.4.2 (starkit version) there was a wish window raised/un-raised. I found that changing the Options->Proc Details->Refresh Interval would change how often it happens. Note that this is only when the edit panel is open with some text. Otherwise, I love CrowTDE, kudos for this excellent work.

CrowMan 2006-07-26: Thanks your report. The problem is because you choose a not appropriate "Tcl Interpreter". Please go to "Options -> Settings- > General / Tcl Interpreter" and make sure setting is correct. (do not use wish or starkit)

pcam 2006-07-26: Thanks CrowMan, that was it. Will there be any bug report/tracking and maybe contributing placeholder. I'd be willing to help (translate in French and more).

CrowMan 2006-07-26 : Thanks pcam. I need your help to translate in French if you willing. Maybe you can mailto: [email protected]


DSC 2006-08-16: I have tried your program. However, it is missing some debug commands such as "Step over" and "Step in"

CrowMan 2006-08-17 To DSC : Thanks DSC. I will add those features in future version.


male 2007-03-15:

I just downloaded the last current installation and tried a bit, but there are some questions:

  • is Nagelfar included?
  • if not, why is there no error message if trying to use it, or why are the button and the notebook page not disabled?
  • if it is, why there are no outputs, if if the source definitely contains errors?
  • so are there prerequisites to be full filled, before using Nagelfar?
  • trying to run the script, the current opened script file lead to nothing - no error messages from the erroneous script, nothing. What prerequisites must be full filled, to run a single opened file (not a project member file)?
  • the proc notebook page at the left side of the UI didn't show any procedure. I changed the source, so that the procedure was outside the namespace definition (namespace eval), but it didn't change anything. What is to be done, to let this work? How must the source be formatted?
  • is there a hotkey/shortcut to jump between opening and closing braces, brackets, parenthesis, or quotes?
  • it is good to have such a complete documentation with CrowTDE, but where is the documentation about CrowTDE itself?

And a suggestion ...

  • first the backgrounds - I work all day with Vim and I often try different IDE's to find out, if it's good to change. But none really made me wanting to change. One reason is, that working with all the Vim hotkeys/shortcuts makes me working very quickly. And learning how to work with another IDE seems to be ... not really necessary. It's enough to work with Visual Studio and Vim.
  • now the suggestion - what's with an Vim emulation inside the editor window?

Thanks and hold on this quite good IDE - Martin

dai 2007-03-15 : I am CrowMan.

  • CrowTDE included Nagelfar. There is a "Syntax check" button on toolbar. It can help to check current opened script.
  • About "Procedure navigator" problems. This is because syntax parser not robust enough.If there is not correct braces "Procdure navigator" will be empty. I will trying to fix the bug.
  • There are not any english documentations for CrowTDE. Because my english is not good enough. sorry~~

Thanks your suggestions.

male - 2007-03-16:

Hi dai,

thanks for your reaction!

  • about Nagelfar - I already tried Nagelfar on a definitely erroneous script file, but there was no action, no result in the Nagelfar window, nothing. That's the reason, why I asked for any prerequisites to be full filled.
  • about the "Procedure Navigator" - the script file I tried with Nagelfar contains a very complicated regular expression (extended format with comments). Perhaps the "Procedure Navigator" has problems with the "\{", "[", etc. inside the regular expressions.
  • the documentation about CrowTDE itself would be very useful. CrowTDE has so many features, that this documentation could really help. Sadly I couldn't help you to write the documentation, because I only speak German and English. But someone else would help you? What's about asking in comp.lang.tcl for help?

Bye and a nice weekend!

Martin


RLH: In looking at some of the screenshots, a suggestion I would make when creating your own dialogs...make the buttons the same width so they look uniform.

dai 2007-03-15 : Thanks your suggestion.


RJM I installed CrowTDE (Windows XP). It works quite fine. However, I did not find a feature of updating single procs in a running script. Upon desire, I could contribute to such a feature (dependent on how the debug communication path is realized).