From AlphaWiki

Development: AlphaTcl to do...

This page is for discussion of things which we'd like to see in AlphaTcl (not in the Alpha/Alphatk core code).

Anyone should feel free to edit this with their own suggestions (click on the edit link at the bottom of the page) -- Vince.

Development.AlphaTcl8_1Plans


Future to-do list (feel free to add your thoughts):


(status: none)

(status: none)

(status: none)

(status: none)

(status: none)

(status: some done, more needed, including changes to colour-lists in alphaDeveloperMenu.tcl. Also a decision needs to be made on colorizing of core-procs (many of which used to be commands))

(status: none)

(status: none)

(status: there is a changeLogHelper.tcl Package is the latest AlphaTcl, but it needs some work)

(status: Alphatk now supports folding (see edit menu), and some simple code is in Tcl, C, Java, TeX, Bib modes and indentation.tcl to test this out. Any mode which wants to support folding need a <mode>::foldableRegion procedure. Probably need to add ability to fold both body of a function and the comments before it in one go).

(status: none)

(status: none)

(status: Bib, Perl, and GPLT have been updated for AlphaTcl 7.5 -- TeX has been updated for AlphaTcl 7.6d7. M2 is one of the larger projects remaining.)

(status: none)

(status: none)

(status: none)

(status: mostly done, with new PreGui code and rebuilding code placed in SystemCode/Init, but some more work, cleanup still needed.)

 
    In modes which use a single comment character, AlphaTcl currently
    uses a style of paragraph comment like this:

    ##
     # Here is a
     # comment
     ##
    which may not appeal to everyone.  We should remove this from
    the core, and move that functionality into this package so it
    can be made optional.  The default (for any mode for which
    this feature is off) would then be:

    # Here is a
    # comment

    which is probably a better default.

    Of course none of this is yet implemented!

(status: none)

(status: nothing, but we should probably ask the user before making the fileset permanent, must look to see how hard that would be to implement)

(status: any ideas, anyone?)

(status: any ideas, anyone? See Menus.ElectricMenuIdeas to read/add comments)

(status: some done in 7.5/8.0, but probably more can be done)

(status: none)


Items which used to be on the to-do list but which have been implemented and released:


In AlphaTcl 8.0dev

(status: done)

(status: done)

In AlphaTcl 7.6

(status: done. Basically involves search and replace on an AlphaTcl fileset (containing all of SystemCode, Modes, etc) by someone with access to the cvs sources -- mostly done, but some Modes still need updating)

(status: new version of TeX mode in the CVS HEAD addresses this -- \equationarray isn't a valid environment, so it shouldn't be defined. \eqnarray is now defined instead. It still needs some help to prompt for the number of rows, etc. Should be easy enough to fix if you know what the environment should look like.) (I didn't.)

(status: available in latest AlphaTcl)

(status: available in latest AlphaTcl/Alphatk. Should work with Alpha 8/X too, although Alpha8 requires a fix for 'httpCopy'. See Bug# 529, [http://www.maths.mq.edu.au/~steffen/Alpha/bugzilla/show_bug.cgi?id=529] and Bug# 530 [http://www.maths.mq.edu.au/~steffen/Alpha/bugzilla/show_bug.cgi?id=530])

(status: Dominique has provided a general fix --- thanks!)

 
    set pos [pos::math [nextLineStart [getPos]] - 1]

(Not as easy as just using the above, though, because there needs to be some check for lines at the very end of the window.)

(status: in positions.tcl. One advantage here is that all of the procs contained therein (such as pos::math) always return valid positions in Alpha7/8, as is currently the case in Alphatk. We need to go through AlphaTcl replacing obsolete versions ('lineEnd' and 'posX') and checking uses of 'posToRowCol' to see whether they should really be pos::toRowCol or pos::toRowChar).


In AlphaTcl 7.5

In Alpha 7.4.2:

 
  proc copyringReplace {} {
      global pasteFinish pasteStart pasteScrap

      if {1} {
          # pretend we are pasting just in case 'paste' has been
          # overridden (since that is the operation we are really
          # trying to imitate here).
          set oldScrap [getScrap]
          putScrap $pasteScrap
          select $pasteStart $pasteFinish
          paste
          putScrap $oldScrap
      } else {
          replaceText $pasteStart $pasteFinish $pasteScrap
      }
  }

instead of the existing version, then we should be able to delete from smartPaste.tcl the extra procedure smartPaste::replace and the various renaming associated with it. Can't we do something similar to remove the (smaller) remaining dependence? If this is not easy, perhaps smartPaste::paste is in error, and it should not implement 'paste' as a combination of deleteText and replaceText, but rather by adjusting the scrap and current selection and performing an ordinary 'paste' again? The problem with this last approach is that 'paste' will actually modify the current scrap/clipboard (by inserting/removing whitespace) which is peculiar.


Category.Development

Retrieved from http://alphatcl.sourceforge.net/wiki/pmwiki.php/Development/AlphaTclToDo
Page last modified on January 23, 2006, at 02:27 PM