230 lines
8.1 KiB
EmacsLisp
230 lines
8.1 KiB
EmacsLisp
;;; context-en.el --- Support for the ConTeXt english interface. -*- lexical-binding: t; -*-
|
|
|
|
;; Copyright (C) 2003-2004, 2006, 2008
|
|
;; 2010, 2014, 2020-2023 Free Software Foundation, Inc.
|
|
|
|
;; Maintainer: Berend de Boer <berend@pobox.com>
|
|
;; Keywords: tex
|
|
|
|
;; This file is part of AUCTeX.
|
|
|
|
;; AUCTeX is free software; you can redistribute it and/or modify it
|
|
;; under the terms of the GNU General Public License as published by
|
|
;; the Free Software Foundation; either version 3, or (at your option)
|
|
;; any later version.
|
|
|
|
;; AUCTeX is distributed in the hope that it will be useful, but
|
|
;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
;; General Public License for more details.
|
|
|
|
;; You should have received a copy of the GNU General Public License
|
|
;; along with AUCTeX; see the file COPYING. If not, write to the Free
|
|
;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
|
;; 02110-1301, USA.
|
|
|
|
;;; Commentary:
|
|
|
|
;; This file is loaded by context.el when required.
|
|
|
|
;;; Code:
|
|
|
|
;; Build upon ConTeXt
|
|
(require 'context)
|
|
|
|
;;; ConText macro names
|
|
|
|
;;; Code:
|
|
(defvar ConTeXt-environment-list-en
|
|
'("alignment" "appendices"
|
|
"background" "backmatter" "bodymatter" "bodypart" "buffer"
|
|
"code" "color" "columns" "combination"
|
|
"encoding" "extroductions"
|
|
"fact" "formula" "framedcode" "framedtext" "frontmatter"
|
|
"helptext" "hiding"
|
|
"itemize"
|
|
"legend" "line" "linecorrection" "linenumbering" "lines"
|
|
"localenvironment" "localfootnotes"
|
|
"makeup" "mapping" "marginblock" "marginedge" "marginrule" "mode"
|
|
"narrower" "notmode"
|
|
"opposite"
|
|
"packed" "pagecomment" "pagefigure" "positioning" "postponing"
|
|
"quotation"
|
|
"raster" "register"
|
|
"standardmakeup"
|
|
"table" "tabulate" "TEXpage" "text" "textbackground" "typing"
|
|
"unpacked"
|
|
;; project structure
|
|
"component" "environment" "product" "project"
|
|
;; flowcharts, if you have loaded this module
|
|
"FLOWcell" "FLOWchart"
|
|
;; typesetting computer languages
|
|
"EIFFEL" "JAVA" "JAVASCRIPT" "MP" "PASCAL" "PERL" "SQL" "TEX" "XML"
|
|
;; some metapost environments
|
|
"MPpositiongraphic" "useMPgraphic" "MPcode" "reusableMPgraphic"
|
|
"uniqueMPgraphic")
|
|
"List of the ConTeXt en interface start/stop pairs.")
|
|
|
|
(defvar ConTeXt-define-list-en
|
|
'("accent"
|
|
"background" "blank" "block" "blocks" "bodyfont" "bodyfontenvironment"
|
|
"buffer"
|
|
"casemap" "character" "color" "colorgroup" "combinedlist" "command"
|
|
"description" "enumeration"
|
|
"float" "font" "fontsynonym" "framedtext" "head"
|
|
"indenting" "label"
|
|
"logo" "overlay"
|
|
"palet" "program" "startstop" "type" "typing")
|
|
"List of the names of ConTeXt en interface macro's that define things.")
|
|
|
|
(defvar ConTeXt-setup-list-en
|
|
'("align" "arranging" "background" "backgrounds" "blackrules"
|
|
"blank" "block" "bodyfont" "bodyfontenvironment" "bottom"
|
|
"bottomtexts" "buffer" "capitals" "caption" "captions" "color"
|
|
"colors" "columns" "combinations" "combinedlist" "descriptions"
|
|
"enumerations" "externalfigures" "fillinlines" "fillinrules" "float"
|
|
"floats" "footer" "footertexts" "footnodedefinition" "footnotes"
|
|
"framed" "framedtexts" "head" "header" "headertexts" "headnumber"
|
|
"heads" "headtext" "hyphenmark" "indentations" "indenting" "inmargin"
|
|
"interlinespace" "itemize" "items" "labeltext" "language" "layout"
|
|
"linenumbering" "lines" "list" "makeup" "marginblocks"
|
|
"marginrules" "marking" "narrower" "oppositeplacing"
|
|
"pagecomment" "pagenumber" "pagenumbering" "palet" "papersize" "paragraphs"
|
|
"quote" "referencing" "register"
|
|
"screens" "section" "sectionblock" "sorting" "spacing"
|
|
"subpagenumber" "synonyms" "text" "textrules" "texttexts" "thinrules"
|
|
"tolerance" "top" "toptexts" "type" "typing" "underbar" "whitespace")
|
|
"List of the names of ConTeXt en interface macro's that setup things.")
|
|
|
|
;; referencing in ConTeXt
|
|
(defvar ConTeXt-referencing-list-en
|
|
'("in" "at" "about" "pagereference" "textreference" "reference")
|
|
"List of ConTeXt en macro's that are used for referencing."
|
|
)
|
|
|
|
;; lists some place macro's as well, should perhaps be under separate menu
|
|
(defvar ConTeXt-other-macro-list-en
|
|
'("abbreviation" "adaptlayout" "at" "combinepages" "copypages"
|
|
"externalfigure" "framed" "from" "input" "insertpages" "filterpages"
|
|
"getbuffer" "goto"
|
|
"hideblocks" "keepblocks"
|
|
"leftaligned" "midaligned"
|
|
"obeyspaces"
|
|
"page"
|
|
"placecontent" "placeexternalfigure" "placefigure" "placelogos" "placetable"
|
|
"processblocks" "protect"
|
|
"raggedcenter" "rightaligned" "rotate"
|
|
"scale" "selectblocks" "showexternalfigures" "slicepages"
|
|
"useexternalfigure" "unprotect" "url" "useblocks" "usemodule" "useURL"
|
|
"version")
|
|
"List of ConTeXt en interface macro's that are not an environment nor a setup.")
|
|
|
|
(defun ConTeXt-define-command-en (what)
|
|
"The ConTeXt en interface way of creating a define command."
|
|
(concat "define" what))
|
|
|
|
(defun ConTeXt-setup-command-en (what)
|
|
"The ConTeXt en interface way of creating a setup command."
|
|
(concat "setup" what))
|
|
|
|
(defvar ConTeXt-project-structure-list-en
|
|
'("project" "environment" "product" "component")
|
|
"List of ConTeXt project structure elements for its en interface.
|
|
List should be in logical order.")
|
|
|
|
(defvar ConTeXt-section-block-list-en
|
|
'("frontmatter" "bodymatter" "appendices" "backmatter")
|
|
"List of ConTeXt section block names for its en interface.
|
|
List should be in logical order.")
|
|
|
|
|
|
;; TODO:
|
|
;; ConTeXt has alternative sections like title and subject. Currently
|
|
;; the level is used to find the section name, so the alternative
|
|
;; names are never found. Have to start using the section name instead
|
|
;; of the number.
|
|
(defvar ConTeXt-numbered-section-list-en
|
|
'(("part" 0)
|
|
("chapter" 1)
|
|
("section" 2)
|
|
("subsection" 3)
|
|
("subsubsection" 4))
|
|
"List of the names of ConTeXt numbered sections for its en interface.")
|
|
|
|
(defvar ConTeXt-unnumbered-section-list-en
|
|
'(("title" 1)
|
|
("subject" 2)
|
|
("subsubject" 3)
|
|
("subsubsubject" 4))
|
|
"List of the names of ConTeXt unnumbered sections for its en interface.")
|
|
|
|
(defvar ConTeXt-section-list-en
|
|
(append ConTeXt-numbered-section-list-en ConTeXt-unnumbered-section-list-en)
|
|
)
|
|
|
|
|
|
(defvar ConTeXt-text-en "text"
|
|
"The ConTeXt en interface body text group.")
|
|
|
|
(defvar ConTeXt-item-list-en
|
|
'("item" "its" "mar" "ran" "sub" "sym")
|
|
"The ConTeXt macro's that are variants of item.")
|
|
|
|
(defcustom ConTeXt-default-environment-en "itemize"
|
|
"The default environment when creating new ones with `ConTeXt-environment'."
|
|
:group 'ConTeXt-en-environment
|
|
:type 'string)
|
|
|
|
(defvar ConTeXt-extra-paragraph-commands-en
|
|
'("crlf" "par" "place[A-Za-z]+")
|
|
"List of ConTeXt macros that should have their own line.
|
|
That is, besides the section(-block) commands.")
|
|
|
|
;; Emacs en menu names and labels should go here
|
|
;; to be done
|
|
|
|
|
|
;;; Mode
|
|
|
|
(defun ConTeXt-en-mode-initialization ()
|
|
"ConTeXt english interface specific initialization."
|
|
;; FIXME: Move to `ConTeXt-mode-common-initialization' replacing
|
|
;; `ConTeXt-environment-list-en' with `ConTeXt-environment-list'?
|
|
(mapc #'ConTeXt-add-environments (reverse ConTeXt-environment-list-en))
|
|
|
|
(TeX-add-symbols
|
|
'("but" ConTeXt-arg-define-ref (TeX-arg-literal " "))
|
|
'("item" ConTeXt-arg-define-ref (TeX-arg-literal " "))
|
|
'("items" [ConTeXt-arg-setup] (TeX-arg-string "Comma separated list"))
|
|
'("its" ConTeXt-arg-define-ref (TeX-arg-literal " "))
|
|
'("nop" (TeX-arg-literal " "))
|
|
'("ran" TeX-arg-string (TeX-arg-literal " "))
|
|
'("sub" ConTeXt-arg-define-ref (TeX-arg-literal " "))
|
|
'("sym" (TeX-arg-string "Symbol") (TeX-arg-literal " "))))
|
|
|
|
;;;###autoload
|
|
(defun context-en-mode ()
|
|
"Major mode for editing files for ConTeXt using its english interface.
|
|
|
|
Special commands:
|
|
\\{ConTeXt-mode-map}
|
|
|
|
Entering `context-mode' calls the value of `text-mode-hook',
|
|
then the value of `TeX-mode-hook', and then the value
|
|
of `ConTeXt-mode-hook'."
|
|
(interactive)
|
|
;; set the ConTeXt interface
|
|
(setq ConTeXt-current-interface "en")
|
|
|
|
;; initialization
|
|
(ConTeXt-mode-common-initialization)
|
|
(ConTeXt-en-mode-initialization)
|
|
|
|
;; set mode line
|
|
(setq TeX-base-mode-name "ConTeXt-en")
|
|
(TeX-set-mode-name))
|
|
|
|
(provide 'context-en)
|
|
|
|
;;; context-en.el ends here
|