Auto-insert of colons in Emacs
Peter Milliken
peter.milliken at gtech.com
Wed May 17 22:38:58 EDT 2000
More information about the Python-list mailing list
Wed May 17 22:38:58 EDT 2000
- Previous message (by thread): Auto-insert of colons in Emacs
- Next message (by thread): Auto-insert of colons in Emacs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi John, To quote a famous recent email "Why hobble your mind with a detail the computer can figure out for itself?" :-) Have a look at true language sensitive editing using Emacs at http://members.xoom.com/pmilliken I have just updated the minor mode (you will see it if you haunt gnu.emacs.sources) and added a new template language for Python :-) So, now you can get the computer to generate all of the syntax and you just supply the variable names :-) This mode works with any major mode, not just Python, there are language templates for C, Ada, Emacs-Lisp etc I have only just started learning Python, so I don't claim the templates are perfect but I have been using them for a couple of days now without problems. If there is something you don't like let me know and I will fix it (full instructions on how the templates work and how to modify them are included in the 45+ page user manual :-)). Any questions, please don't hesitate to call :-) Peter John Wiegley wrote in message ... > >Why hobble your mind with a detail the computer can figure out for >itself? > >It's very strictly defined where a colon should go in Python, so it >makes little sense that humans should be bothered with this detail. >If it makes the code more readable for those who didn't write it, I >can understand; but the author has better things to think about. > >Accordingly, the following snippet of Emacs code will ensure there is >always a colon where it should be. You should never have to type them >again, except when you want the whole statement to fit on one line. > >To use it, just put everything after the "----" in your .emacs file. > >Enjoy. This was written for users of python-mode.el >(http://www.python.org/emacs/python-mode/) > >---------------------------------------------------------------------- > >(eval-after-load "python-mode" > '(progn > (defvar python-keywords-wanting-colon > '("def" "class" "if" "while" "else" > "try" "except" "finally" "for" "lambda")) > > (defvar python-kwc-regexp nil) > > (require 'advice) > (defadvice py-newline-and-indent (before always-insert-colons activate) > "Always make sure that colons appear in the appropriate place." > (unless (eq (char-before) ?:) > (let ((here (point)) > insert-colon already-has-it) > (save-excursion > (beginning-of-line) > (save-excursion > (if (search-forward ":" here t) > (setq already-has-it t))) > (unless already-has-it > (unless python-kwc-regexp > (require 'regexp-opt) > (setq python-kwc-regexp > (concat "\\s-*\\<" > (regexp-opt python-keywords-wanting-colon t) > "\\>"))) > (if (looking-at python-kwc-regexp) > (setq insert-colon t)))) > (if insert-colon > (let ((last-command-char ?:)) > (py-electric-colon nil))))))))
- Previous message (by thread): Auto-insert of colons in Emacs
- Next message (by thread): Auto-insert of colons in Emacs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list