From: Martin B. <bl...@fu...> - 2007-12-03 20:26:06
|
Oye oye, I have spent a few days completely revamping the ReStructuredText support for Emacs into a single major mode: rst-mode. In summary, here is what I've done: - Converted Stefan Merten's rst-mode for font-locking into a "derived mode", a mode derived from text-mode. - Integrated all the features that I had added outside of it into the major mode, and automatically set the key bindings when the major mode is enabled. - Converted all the keybindings to the Emacs standards for major modes. (Actually, this cleaned up a lot of strange bindings.) WARNING: All the keybindings have been shortened to a "C-c C-LETTER" equivalent. - Did various clean-ups, * integrated abbrevs in the mode, * fixed bugs with comment-syntax not playing well with filling, * integrated the messy paragraph-start fixes for filling and more. - Revised the entire documentation and organized it more cleanly. Also, if you look at "rst-mode-map" in the source, all the available keybindings and what they do should now be obvious at a glance, and the rest documentation matches this organization as well. I did those changes in response to comments from RMS and Stefan, in order to integrate ReStructuredText into the main GNU Emacs distribution, which I think would be really cool. Please be advised, you may have to adjust your .emacs a little bit when you update. I apologize in advance for any disruptions this may cause. Any questions let me know. P.S. Here is a quick summary of the new keybindings: C-= rst-adjust C-c C-a rst-adjust C-c C-b rst-bullet-list-region C-c C-c comment-region C-c C-d rst-line-block-region C-c C-e rst-enumerate-region C-c C-f rst-goto-section C-c C-h rst-display-decorations-hierarchy C-c TAB rst-toc-insert C-c C-l rst-shift-region-left C-c RET rst-mark-section C-c C-n rst-forward-section C-c C-p rst-backward-section C-c C-r rst-shift-region-right C-c C-s rst-straighten-decorations C-c C-t rst-toc C-c C-u rst-toc-update C-c C-v rst-convert-bullets-to-enumeration C-c C-w rst-straighten-bullets-region C-c 1 rst-compile C-c 2 rst-compile-alt-toolset C-c 3 rst-compile-pseudo-region C-c 4 rst-compile-pdf-preview C-c 5 rst-compile-slides-preview C-c C-= rst-adjust With docs: ;; ;; Section Decorations. ;; ;; The adjustment function that decorates or rotates a section title. (define-key map [(control c) (control a)] 'rst-adjust) (define-key map [(control c) (control ?=)] 'rst-adjust) (define-key map [(control ?=)] 'rst-adjust) ;; (Does not work on the Mac OSX.) ;; Display the hierarchy of decorations implied by the current document contents. (define-key map [(control c) (control h)] 'rst-display-decorations-hierarchy) ;; Homogeneize the decorations in the document. (define-key map [(control c) (control s)] 'rst-straighten-decorations) ;; ;; Section Movement and Selection. ;; ;; Mark the subsection where the cursor is. (define-key map [(control c) (control m)] 'rst-mark-section) ;; Move forward/backward between section titles. (define-key map [(control c) (control n)] 'rst-forward-section) (define-key map [(control c) (control p)] 'rst-backward-section) ;; ;; Operating on Blocks of Text. ;; ;; Makes paragraphs in region as a bullet list. (define-key map [(control c) (control b)] 'rst-bullet-list-region) ;; Makes paragraphs in region as a enumeration. (define-key map [(control c) (control e)] 'rst-enumerate-region) ;; Converts bullets to an enumeration. (define-key map [(control c) (control v)] 'rst-convert-bullets-to-enumeration) ;; Makes region a line-block. (define-key map [(control c) (control d)] 'rst-line-block-region) ;; Make sure that all the bullets in the region are consistent. (define-key map [(control c) (control w)] 'rst-straighten-bullets-region) ;; Shift region left or right (taking into account of enumerations/bullets, etc.). (define-key map [(control c) (control l)] 'rst-shift-region-left) (define-key map [(control c) (control r)] 'rst-shift-region-right) ;; Comment/uncomment the active region. (define-key map [(control c) (control c)] 'comment-region) ;; ;; Table-of-Contents Features. ;; ;; Enter a TOC buffer to view and move to a specific section. (define-key map [(control c) (control t)] 'rst-toc) ;; Insert a TOC here. (define-key map [(control c) (control i)] 'rst-toc-insert) ;; Update the document's TOC (without changing the cursor position). (define-key map [(control c) (control u)] 'rst-toc-update) ;; Got to the section under the cursor (cursor must be in TOC). (define-key map [(control c) (control f)] 'rst-goto-section) ;; ;; Converting Documents from Emacs. ;; ;; Run one of two pre-configured toolset commands on the document. (define-key map [(control c) (?1)] 'rst-compile) (define-key map [(control c) (?2)] 'rst-compile-alt-toolset) ;; Convert the active region to pseudo-xml using the docutils tools. (define-key map [(control c) (?3)] 'rst-compile-pseudo-region) ;; Convert the current document to PDF and launch a viewer on the results. (define-key map [(control c) (?4)] 'rst-compile-pdf-preview) ;; Convert the current document to S5 slides and view in a web browser. (define-key map [(control c) (?5)] 'rst-compile-slides-preview) |