Editt Wish List

 

Cette page a pour objectif de recenser les besoins/envies de chacun pour les futures versions de Editt.


dc À partir de la version 1.0.7 (je suis désolé, on est déja à la version 1.0.8 !), je propose ces petits changements issus d'un 'diff -u editt_avt.tcl editt_aps.tcl' où j'ai appelé editt_avt.tcl la version originale 1.0.7 et editt_aps.tcl la version modifiée.

Il s'agit d'une première tentative pour définir de raccourcis à la emacs.

 --- editt_avt.tcl	2004-12-25 13:59:49.000000000 +0100
 +++ editt_aps.tcl	2004-12-25 14:00:39.000000000 +0100
 @@ -439,6 +439,7 @@
      set EditorData(options,workingDir) "~"
      set options(useDefaultExtension) 1
      set EditorData(options,useDefaultExtension) 1
 +    set EditorData(options,useEmacsStyle) 0
    } else  {
      set toolbar1 $EditorData(options,showToolbar1)
      set toolbar2 $EditorData(options,showToolbar2)
 @@ -461,6 +462,7 @@
      set options(workingDir) $EditorData(options,workingDir)
      set options(serverWish) $EditorData(options,serverWish)
      set options(useDefaultExtension) $EditorData(options,useDefaultExtension)
 +    set options(useEmacsStyle) $EditorData(options,useEmacsStyle)
    }
    set EditorData(indentString) [string repeat " " $EditorData(options,indentSize)]
    Editt::CreateFonts
 @@ -2660,6 +2662,11 @@
          -command  {set EditorData(options,useDefaultExtension) $Editt::options(useDefaultExtension)
          }
        }
 +      {checkbutton "Raccourcis emacs" {all option} "Utiliser des raccourcis \" la emacs\"" {}
 +        -variable Editt::options(useEmacsStyle)
 +        -command {set EditorData(options,useEmacsStyle) $Editt::options(useEmacsStyle);Editt::setBindings}
 +      }
 +
      }
      "Aide" {} {} 0 {
        {command "Index" {} "Index de l'aide" {} -command "showManEntry $Editt::TxtWidget"}
 @@ -3056,7 +3063,6 @@

    wm withdraw $top
    wm overrideredirect $top 1
 -
    set splashscreen  [label $top.x -image spl]
    pack $splashscreen
    BWidget::place $top 0 0 center
 @@ -3113,24 +3119,80 @@
    bind $TxtWidget <KeyRelease> {Editt::OnKeyRelease ; break}
    bind $TxtWidget <KeyPress> {[Editt::OnKeyPress %A ] }
    bind $TxtWidget <ButtonRelease> Editt::OnMouseRelease
 -  # Sans Caps-Lock :
 -  bind $TxtWidget <Control-o> "Editt::openFile; break"
 -  bind $TxtWidget <Control-s> "Editt::saveFile; break"
 -  bind $TxtWidget <Control-x> "Editt::cut; break"
 -  bind $TxtWidget <Control-c> "Editt::copy; break"
 -  bind $TxtWidget <Control-v> "Editt::paste; break"
 -  bind $TxtWidget <Control-z> "Editt::undo; break"
 -  bind $TxtWidget <Control-r> "Editt::redo; break"
 -  bind $TxtWidget <Control-a> "Editt::selectAll; break"
 -  # Avec Caps-Lock :
 -  bind $TxtWidget <Control-O> "Editt::openFile; break"
 -  bind $TxtWidget <Control-S> "Editt::saveFile; break"
 -  bind $TxtWidget <Control-X> "Editt::cut; break"
 -  bind $TxtWidget <Control-C> "Editt::copy; break"
 -  bind $TxtWidget <Control-V> "Editt::paste; break"
 -  bind $TxtWidget <Control-Z> "Editt::undo; break"
 -  bind $TxtWidget <Control-R> "Editt::redo; break"
 -  bind $TxtWidget <Control-A> "Editt::selectAll; break"
 +  if {$EditorData(options,useEmacsStyle)==0} {
 +    # annulation comportement emacs
 +    bind $TxtWidget <Control-x><Control-f> ""
 +    bind $TxtWidget <Control-x><Control-s> ""
 +    bind $TxtWidget <Alt-w>                ""
 +    bind $TxtWidget <Control-y>            ""
 +    bind $TxtWidget <Control-underscore>   ""
 +    bind $TxtWidget <Control-x><Control-u> ""
 +    bind $TxtWidget <Control-x><Control-h> ""
 +
 +    bind $TxtWidget <Control-X><Control-F> ""
 +    bind $TxtWidget <Control-X><Control-S> ""
 +    bind $TxtWidget <Alt-W>                ""
 +    bind $TxtWidget <Control-Y>            ""
 +    bind $TxtWidget <Control-X><Control-U> ""
 +    bind $TxtWidget <Control-X><Control-H> ""
 +    # Sans Caps-Lock :
 +    bind $TxtWidget <Control-o> "Editt::openFile; break"
 +    bind $TxtWidget <Control-s> "Editt::saveFile; break"
 +    bind $TxtWidget <Control-x> "Editt::cut; break"
 +    bind $TxtWidget <Control-c> "Editt::copy; break"
 +    bind $TxtWidget <Control-v> "Editt::paste; break"
 +    bind $TxtWidget <Control-z> "Editt::undo; break"
 +    bind $TxtWidget <Control-r> "Editt::redo; break"
 +    bind $TxtWidget <Control-a> "Editt::selectAll; break"
 +    # Avec Caps-Lock :
 +    bind $TxtWidget <Control-O> "Editt::openFile; break"
 +    bind $TxtWidget <Control-S> "Editt::saveFile; break"
 +    bind $TxtWidget <Control-X> "Editt::cut; break"
 +    bind $TxtWidget <Control-C> "Editt::copy; break"
 +    bind $TxtWidget <Control-V> "Editt::paste; break"
 +    bind $TxtWidget <Control-Z> "Editt::undo; break"
 +    bind $TxtWidget <Control-R> "Editt::redo; break"
 +    bind $TxtWidget <Control-A> "Editt::selectAll; break"
 +  } else  {
 +    # annulation des comportements "Windows"
 +    bind $TxtWidget <Control-o> ""
 +    bind $TxtWidget <Control-s> ""
 +    bind $TxtWidget <Control-x> ""
 +    bind $TxtWidget <Control-c> ""
 +    bind $TxtWidget <Control-v> ""
 +    bind $TxtWidget <Control-z> ""
 +    bind $TxtWidget <Control-r> ""
 +    bind $TxtWidget <Control-a> ""
 +    # Avec Caps-Lock :
 +    bind $TxtWidget <Control-O> ""
 +    bind $TxtWidget <Control-S> ""
 +    bind $TxtWidget <Control-X> ""
 +    bind $TxtWidget <Control-C> ""
 +    bind $TxtWidget <Control-V> ""
 +    bind $TxtWidget <Control-Z> ""
 +    bind $TxtWidget <Control-R> ""
 +    bind $TxtWidget <Control-A> ""
 +    # annulation de certains comportements par dfaut
 +    bind Text <Control-h> ""
 +    bind Text <Control-x> ""
 +
 +    # seuls les principaux bindings sont pour l'instant voqus
 +    # j'utilise Alt  la place de Meta
 +    bind $TxtWidget <Control-x><Control-f> "Editt::openFile; break"
 +    bind $TxtWidget <Control-x><Control-s> "Editt::saveFile; break"
 +    bind $TxtWidget <Alt-w>                "Editt::copy; break"
 +    bind $TxtWidget <Control-y>            "Editt::paste; break"
 +    bind $TxtWidget <Control-underscore>   "Editt::undo; break"
 +    bind $TxtWidget <Control-x><Control-u> "Editt::undo; break"
 +    bind $TxtWidget <Control-x><Control-h> "Editt::selectAll; break"
 +
 +    bind $TxtWidget <Control-X><Control-F> "Editt::openFile; break"
 +    bind $TxtWidget <Control-X><Control-S> "Editt::saveFile; break"
 +    bind $TxtWidget <Alt-W>                "Editt::copy; break"
 +    bind $TxtWidget <Control-Y>            "Editt::paste; break"
 +    bind $TxtWidget <Control-X><Control-U> "Editt::undo; break"
 +    bind $TxtWidget <Control-X><Control-H> "Editt::selectAll; break"
 +  }
    bind $TxtWidget <KeyRelease-Home> "Editt::gotoFirstChar;break"
    bind $TxtWidget <F3> "repeat_last_search $TxtWidget"
    bind $TxtWidget <F1> { showManEntry %W }
 @@ -6567,3 +6629,4 @@
  }

  initeditt $argc $argv
 +

Miko aimerait bien voir intégré le glisser-déplacer des fichiers vers l'éditeur, éventuellement avec Drag'n'Drop avec Tkdnd

Kroc 30 Septembre 2005 : Actuellement le glisser-déposer n'est implémenté que sous Mac OS X. Dans la mesure ou j'ai prévu (dès que j'aurai du temps libre) de ré-écrire l'interface avec Tile au lieu des BWidgets, ça ne sera disponible pour Windows et linux qu'une fois cette modification majeure terminée.


Asy A la déclaration d'une procédure, si l'on tente d'effacer les accolades entourant les arguments, on obtient: Error: bad text index "". Pas vraiment bloquant à la saisie, après tout, pourquoi supprimer les accolades? C'est bien plus bloquant lorsque l'on tente d'ouvrir un fichier tcl déjà existant. Pour vous convaincre de cette nuisance, essayez (sous linux):

 cat >e.tcl
 proc a b {}
 <ctrl-d>
 editt e.tcl

dc 22/02/06 serait-il possible de choisir l'interpréteur d'exécution ?

Pourrait-on aussi envisager la possibilité de créer automatiquement un starpack ? c'est-à-dire automatiser la série de commandes :

 sdx qwrap fichier.tcl
 sdx unwrap fichier.kit
 sdx wrap fichier.executable -runtime tclkit.binaire

Sans devenir un front-end de sdx ça serait super-sympa et pratique.