%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/ |
Current File : //usr/local/share/emacs/27.2/lisp/align.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314DD\315\316\317\306\301&\210\310\320\312\313\321DD\322\316\323\306\301&\210\310\324\312\313\325DD\326\316\327\306\301&\210\310\330\312\313\331DD\332\316\333\306\301&\210\310\334\312\313\335DD\336\316\327\306\301&\210\310\337\312\313\340DD\341\316\342\306\301&\210\310\343\312\313\344DD\345\316\342\306\301&\210\310\346\312\313\347DD\350\316\327\306\301&\210\310\351\312\313\352DD\353\316\354\306\301&\210\310\355\312\313\356DD\357\316\360\306\301&\210\310\361\312\313\362DD\363\316\364\306\301&\210\310\365\312\313\366DD\367\316\370\306\301&\210\310\371\312\313\372DD\373\316\374\306\301&\210\310\375\312\313\376DD\377\316\201@ \306\301&\210\310\201A \312\313\201B DD\201C \316\201D \306\301&\210\310\201E \312\313\201F DD\201G \316\201H \306\301&\210\310\201I \312\313\201J DD\201K \316\201L \306\301&\210\201M \201I \201N \201O #\207" [custom-declare-group align nil "Align text to a specific column, by regexp." :version "21.1" :group fill custom-declare-variable align-load-hook funcall function #[0 "\300\207" [nil] 1] "Hook that gets run after the aligner has been loaded." :type hook align-indent-before-aligning #[0 "\300\207" [nil] 1] "If non-nil, indent the marked region before aligning it." boolean align-default-spacing #[0 "\300\207" [1] 1] "An integer that represents the default amount of padding to use.\nIf `align-to-tab-stop' is non-nil, this will represent the number of\ntab stops to use for alignment, rather than the number of spaces.\nEach alignment rule can optionally override both this variable and\n`align-to-tab-stop'. See `align-rules-list'." integer align-to-tab-stop #[0 "\300\207" [indent-tabs-mode] 1] "If non-nil, alignments will always fall on a tab boundary.\nIt may also be a symbol, whose value will be taken." (choice (const nil) symbol) align-region-heuristic #[0 "\300\207" [500] 1] "If non-nil, used as a heuristic by `align-current'.\nSince each alignment rule can possibly have its own set of alignment\nsections (whenever `align-region-separate' is non-nil, and not a\nstring), this heuristic is used to determine how far before and after\npoint we should search in looking for a region separator. Larger\nvalues can mean slower performance in large files, although smaller\nvalues may cause unexpected behavior at times." align-highlight-change-face #[0 "\300\207" [highlight] 1] "The face to highlight with if changes are necessary." face align-highlight-nochange-face #[0 "\300\207" [secondary-selection] 1] "The face to highlight with if no changes are necessary." align-large-region #[0 "\300\207" [10000] 1] "If an integer, defines what constitutes a \"large\" region.\nIf nil, then no messages will ever be printed to the minibuffer." align-c++-modes #[0 "\300\207" [(c++-mode c-mode java-mode)] 1] "A list of modes whose syntax resembles C/C++." (repeat symbol) align-perl-modes #[0 "\300\207" [(perl-mode cperl-mode)] 1] "A list of modes where Perl syntax is to be seen." (repeat symbol) align-lisp-modes #[0 "\300\207" [(emacs-lisp-mode lisp-interaction-mode lisp-mode scheme-mode)] 1] "A list of modes whose syntax resembles Lisp." (repeat symbol) align-tex-modes #[0 "\300\207" [(tex-mode plain-tex-mode latex-mode slitex-mode)] 1] "A list of modes whose syntax resembles TeX (and family)." (repeat symbol) align-text-modes #[0 "\300\207" [(text-mode outline-mode)] 1] "A list of modes whose content is plain text." (repeat symbol) align-dq-string-modes #[0 "\303 \n\304$\207" [align-lisp-modes align-c++-modes align-perl-modes append (python-mode vhdl-mode)] 5] "A list of modes where double quoted strings should be excluded." (repeat symbol) align-sq-string-modes #[0 "\301\302\"\207" [align-perl-modes append (python-mode)] 3] "A list of modes where single quoted strings should be excluded." (repeat symbol) align-open-comment-modes #[0 "\303 \n\304$\207" [align-lisp-modes align-c++-modes align-perl-modes append (python-mode makefile-mode vhdl-mode)] 5] "A list of modes with a single-line comment syntax.\nThese are comments as in Lisp, which have a beginning, but end with\nthe line (i.e., `comment-end' is an empty string)." (repeat symbol) align-region-separate #[0 "\300\207" [#1="^\\s-*[{}]?\\s-*$"] 1 #1#] "Select the method by which alignment sections will be separated.\nIf this is a symbol, that symbol's value will be used.\n\nFor the sake of clarification, consider the following example, which\nwill be referred to in the descriptions below.\n\n int alpha = 1; /* one */\n double beta = 2.0;\n long gamma; /* ten */\n\n unsigned int delta = 1; /* one */\n long double epsilon = 3.0;\n long long omega; /* ten */\n\nThe possible settings for `align-region-separate' are:\n\n `entire' The entire region being aligned will be considered as a\n single alignment section. Assuming that comments were not\n being aligned to a particular column, the example would\n become:\n\n int alpha = 1; /* one */\n double beta = 2.0;\n long gamma; /* ten */\n\n unsigned int delta = 1; /* one */\n long double epsilon;\n long long chi = 10; /* ten */\n\n `group' Each contiguous set of lines where a specific alignment\n occurs is considered a section for that alignment rule.\n Note that each rule may have any entirely different set\n of section divisions from another.\n\n int alpha = 1; /* one */\n double beta = 2.0;\n long gamma; /* ten */\n\n unsigned int delta = 1; /* one */\n long double epsilon;\n long long chi = 10; /* ten */\n\n `largest' When contiguous rule sets overlap, the largest section\n described will be taken as the alignment section for each\n rule touched by that section.\n\n int alpha = 1; /* one */\n double beta = 2.0;\n long gamma; /* ten */\n\n unsigned int delta = 1; /* one */\n long double epsilon;\n long long chi = 10; /* ten */\n\n NOTE: This option is not supported yet, due to algorithmic\n issues which haven't been satisfactorily resolved. There\n are ways to do it, but they're both ugly and resource\n consumptive.\n\n regexp A regular expression string which defines the section\n divider. If the mode you're in has a consistent divider\n between sections, the behavior will be very similar to\n `largest', and faster. But if the mode does not use clear\n separators (for example, if you collapse your braces onto\n the preceding statement in C or Perl), `largest' is\n probably the better alternative.\n\n function A function that will be passed the beginning and ending\n locations of the region in which to look for the section\n separator. At the very beginning of the attempt to align,\n both of these parameters will be nil, in which case the\n function should return non-nil if it wants each rule to\n define its own section, or nil if it wants the largest\n section found to be used as the common section for all\n rules that occur there.\n\n list A list of markers within the buffer that represent where\n the section dividers lie. Be certain to use markers! For\n when the aligning begins, the ensuing contract/expanding of\n whitespace will throw off any non-marker positions.\n\n This method is intended for use in Lisp programs, and not\n by the user." (choice (const :tag "Entire region is one section" entire) (const :tag "Align by contiguous groups" group) (regexp :tag "Regexp defines section boundaries") (function :tag "Function defines section boundaries")) put risky-local-variable t] 8) #@54 The `type' form for any `align-rules-list' variable. (defvar align-rules-list-type '(repeat (cons :tag "Alignment rule" (symbol :tag "Title") (cons :tag "Required attributes" (cons :tag "Regexp" (const :tag "(Regular expression to match)" regexp) (choice :value "\\(\\s-+\\)" regexp function)) (repeat :tag "Optional attributes" (choice (cons :tag "Repeat" (const :tag "(Repeat this rule throughout line)" repeat) (boolean :value t)) (cons :tag "Paren group" (const :tag "(Parenthesis group to use)" group) (choice :value 2 integer (repeat integer))) (cons :tag "Modes" (const :tag "(Modes where this rule applies)" modes) (sexp :value (text-mode))) (cons :tag "Case-fold" (const :tag "(Should case be ignored for this rule)" case-fold) (boolean :value t)) (cons :tag "To Tab Stop" (const :tag "(Should rule align to tab stops)" tab-stop) (boolean :value nil)) (cons :tag "Valid" (const :tag "(Return non-nil if rule is valid)" valid) (function :value t)) (cons :tag "Run If" (const :tag "(Return non-nil if rule should run)" run-if) (function :value t)) (cons :tag "Column" (const :tag "(Column to fix alignment at)" column) (choice :value comment-column integer symbol)) (cons :tag "Spacing" (const :tag "(Amount of spacing to use)" spacing) (integer :value 1)) (cons :tag "Justify" (const :tag "(Should text be right justified)" justify) (boolean :value t)) (cons :tag "Separate" (const :tag "(Separation to use for this rule)" separate) (choice :value "^\\s-*$" (const entire) (const group) regexp function))))))) (#$ . 8132)) (byte-code "\301\302\303\304\305DD\306\307\310\311&\210\312\302\313\314#\207" [align-rules-list-type custom-declare-variable align-rules-list funcall function #[0 "\300\301\302\303\304\305B\257\306\307\310\311B\312BB\313\314\310\315B\316\317\320\321\322B\257\323\310\324B\325BB\326\310\327B\330BB\331\310\332B\333BB\334\335\336\337\340\304\341B\257\342\343\344\345\304\346B\257\347\350\351\352\321\353B\257\354\355\356\321\357BF\360\361\362\321\363BF\364\365\366\321\367BF\370\371\372\310\373B\374BB\375\310\376B\377\201@ \201A \304\201B B\257\201C \201D \201E \201F \201G \201H \304\201I B\257\201J \201K \201L \201M \304\201N B\257\201O BBBBBBBBBBBBBBBBBBBBBB\207" [lisp-second-arg (regexp . "\\(^\\s-+[^( \n]\\|(\\(\\S-+\\)\\s-+\\)\\S-+\\(\\s-+\\)") (group . 3) (modes . align-lisp-modes) run-if #[0 "\207" [current-prefix-arg] 1] (lisp-alist-dot (regexp . "\\(\\s-*\\)\\.\\(\\s-*\\)") (group 1 2) (modes . align-lisp-modes)) open-comment regexp #[514 "\211\203 \301\202 \302\303\304!\305Q\306#\207" [comment-start re-search-backward re-search-forward "[^ \n\\]" regexp-quote "\\(.+\\)$" t] 6 "\n\n(fn END REVERSE)"] ((modes . align-open-comment-modes)) (c-macro-definition (regexp . "^\\s-*#\\s-*define\\s-+\\S-+\\(\\s-+\\)") (modes . align-c++-modes)) c-variable-declaration "[*&0-9A-Za-z_]>?[&*]*\\(\\s-+[*&]*\\)[A-Za-z_][0-9A-Za-z:_]*\\s-*\\(\\()\\|=[^=\n].*\\|(.*)\\|\\(\\[.*\\]\\)*\\)\\s-*[;,]\\|)\\s-*$\\)" (group . 1) (modes . align-c++-modes) (justify . t) valid #[0 "\212\301\224b\210\302v\210\303\304!)\206( \305\300!\203\"