Mercurial > emacs
view doc/misc/flymake.texi @ 109462:a150e8a14679
Install version 7.01 of Org-mode
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* ob-C.el: New file.
* ob-R.el: New file.
* ob-asymptote.el: New file.
* ob-clojure.el: New file.
* ob-comint.el: New file.
* ob-css.el: New file.
* ob-ditaa.el: New file.
* ob-dot.el: New file.
* ob-emacs-lisp.el: New file.
* ob-eval.el: New file.
* ob-exp.el: New file.
* ob-gnuplot.el: New file.
* ob-haskell.el: New file.
* ob-keys.el: New file.
* ob-latex.el: New file.
* ob-lob.el: New file.
* ob-matlab.el: New file.
* ob-mscgen.el: New file.
* ob-ocaml.el: New file.
* ob-octave.el: New file.
* ob-perl.el: New file.
* ob-python.el: New file.
* ob-ref.el: New file.
* ob-ruby.el: New file.
* ob-sass.el: New file.
* ob-screen.el: New file.
* ob-sh.el: New file.
* ob-sql.el: New file.
* ob-sqlite.el: New file.
* ob-table.el: New file.
* ob-tangle.el: New file.
* ob.el: New file.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-mks.el: New file.
* org-capture.el: New file.
2010-07-19 Christian Egli <christian.egli@sbszh.ch>
* org-taskjuggler.el: New file.
2010-07-19 Matt Lundin <mdl@imapmail.org>
* org-agenda.el (org-search-view): Fixed inclusion of agenda-archives
in org-agenda-text-search-extra-files.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-list.el (org-list-send-list): Locally bind variable
`txt'.
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org.el (org-reload): now also reloading babel files
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-capture.el (org-capture-set-plist): Make sure txt is a string
before calling `string-match'.
(org-capture-templates): Fix customization type.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-preprocess): Make a special case for \nbsp.
(org-latex-entities): Remove the entry for \nbsp.
(org-latex-entities-exceptions): Variable removed.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-capture.el (org-capture-refile): Do not try to manipulate
bookmark list.
* org.el (org-refile): Use the correct bookmark here.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-list.el (org-list-send-list): Parse list from its true beginning.
* org.el (org-ctrl-c-ctrl-c): Maybe send the list when at a list item.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-insert-link): Correctly determine if we should use
a relative path.
2010-07-19 Nicolas Goaziou <n.goaziou@gmail.com>
* org-list.el (org-list-radio-list-templates): Fix templates.
2010-07-19 Nicolas Goaziou <n.goaziou@gmail.com>
* org-list.el (org-list-send-list): regexp defining the start of
a radio list is now on par with the one used for radio tables.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-entities.el (org-entities-help): Add a headline for
the user-defined entities.
2010-07-19 Dirk-Jan C. Binnema <djcb.bulk@gmail.com> (tiny change)
* org-agenda.el (org-agenda-action): Document capture key and add it
to the prompt.
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-latex.el (org-export-latex-listings-langs): added (sqlite "SQL")
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-first-lines): Do not mark
meta lines for removal. Do not remove BABEL config lines during export
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-capture.el (org-capture): Check if
`org-capture-link-is-already-stored' is bound before evaluating.
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org.el: added autoload for org-babel-do-load-languages
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-src.el (org-src-lang-modes): added sqlite to sql-mode
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-feed.el: Change indentation to match coding style
guideline.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-feed.el (org-feed-unescape, org-feed-parse-atom-feed): Load XML
library if necessary.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-beamer.el (org-beamer-amend-header): Standardize the
header cookie for the beamer extra stuff.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-beamer.el (org-beamer-amend-header): Put extra header
last in header.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-exp-blocks.el (org-export-blocks-format-ditaa)
(org-export-blocks-format-dot): Remove text properties of body before
calculating cache hash.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-tabular-environment): New option.
(org-export-latex-tables): Use `org-export-latex-tabular-environment'.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-compat.el (org-version-check): New function.
* org-indent.el (org-indent-mode): Check for exact emacs version.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-capture.el (org-capture-templates): Allow the template
to come from a file or function call.
(org-capture-place-entry): Get the template from file or function.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-agenda.el (org-agenda-bulk-action): Don't create marker for
position if target is entire file.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-autoload): Autoload a few more org-table functions.
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org.el (org-babel-load-languages): adding ob-mscgen
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-latex.el (org-export-latex-tables): format string now
matches options
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org.el (org-babel-load-languages): this variable controls which
languages will be loaded by org-babel. It is customizable through
the customize interface.
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-latex.el (org-export-latex-format-image): updated number of
arguments to allow for an optional short-name
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-indent.el (org-indent-mode): Refuse to turn on prior to Emacs 23.2
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-capture.el (org-capture-set-target-location): Store
exact positions for file+regexp and file+function targets.
(org-capture-place-entry, org-capture-place-item)
(org-capture-place-table-line, org-capture-place-plain-text): Respect
exact positions.
(org-capture-finalize): Make sure we are at the beginning of a line
when fixing the empty lines after the entry.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-entry-get-with-inheritance): New argument LITERAL-NIL.
(org-entry-get): Pass `literal-nil' into
`org-entry-get-with-inheritance'.
(org-todo): React to nil values of the LOGGING property.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-default-notes-file): Update docstring
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-link-frame-setup): Use `org-gnus-no-new-news' as default.
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-exp.el (org-export-attach-captions-and-attributes): adding
a shortname attribute to caption strings under the symbol name
org-caption-shortn.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-switchb): Renamed from `org-iswitchb'. Improve
docstring.
(org-iswitchb): New alias.
(org-ido-switchb): Make alias point to `org-switchb'.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-capture.el (org-capture-fill-template): Respect
time-of-day preference in template prompt.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-feed.el (org-feed-unescape): Remove superfluous lambda.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-wl.el (org-wl-disable-folder-check): New customization
variable.
(org-wl-open): Disable folder check depending on
`org-wl-disable-folder-check'.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-capture.el (org-capture-set-target-location): Fix
file+function interpretation.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-feed.el (org-feed-parse-rss-entry): Unescape rss element
content.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-feed.el (xml-entity-alist): Declare variable
`xml-entity-alist' for byte compiler.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-feed.el (org-feed-unescape): New function. Unescape
protected entities.
(org-feed-parse-atom-entry): Use function for atom:content
type text and html.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-feed.el (org-feed-parse-rss-feed): Ignore case of rss
element names.
2010-07-19 Bernt Hansen <bernt@norang.ca>
* org.el (org-time-string-to-absolute): Ignore cyclic repeater
when displaying items on todays agenda date.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-get-progress): Avoid reusing previous
value of EXTRA.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-publish.el (org-publish-initialize-cache): Make
timestamp directory, the entire path to it.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-handle-comments): Make sure to check
for protection in the comment line, and not in the line after it.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-html.el (org-export-html-preprocess): Call org-format-latex,
possibly with a protect-only argument.
* org.el (org-format-latex): New argument PROTECT-ONLY.
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-exp.el (org-export-handle-table-metalines): this function
removes table specific meta-lines, now that we aren't wiping
everything that looks remotely like a comment at the end of the
export process we have to be sure to catch all of the specific lines
in org-exp.el
2010-07-19 Nicolas Goaziou <n.goaziou@gmail.com>
* org-exp.el: (org-export-select-backend-specific-text) Properly
get rid of #+Backend and #+ATTR_Backend specifics to backends not
matching the one we're exporting to.
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* Makefile (lisp/org-install.el): replacing babel files in
construction of org-install.el
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-table.el (orgtbl-to-generic): added the :remove-newlines
option which will strip newline characters from the text of table
cells and replace then with "\n"
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-confirm-shell-link-function):
(org-confirm-elisp-link-function): Limit the values that can be set by
file variables.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-compute-latex-and-specials-regexp): Deal with
string elements by discarding them.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-iswitchb): Make sure to use at least iswitchb.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-capture.el (org-capture-position-for-last-stored):
org-capture-bookmark-last-stored-position): New functions.
(org-capture-place-table-line): Better error catching.
(org-capture-place-item):
(org-capture-place-entry):
(org-capture-place-plain-text): Call
`org-capture-position-for-last-stored'.
(org-capture-finalize): Just call
`org-capture-bookmark-last-stored-position'.
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-exp.el (org-export-mark-blockquote-verse-center): fixed
small bug, now grabbing match data before overwritten by looking-at
this fixes a problem with remainders of #+end_quote lines appearing
in exported output
2010-07-19 David Maus <dmaus@ictsoc.de>
* org.el (org-link-frame-setup): Add customization option for
Wanderlust.
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-latex.el (org-export-latex-fixed-width): now checking
org-example rather than org-protected on verbatim export, because by
default all ": " prefixed lines are marked protected
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-latex.el (org-export-latex-fixed-width): check for
protection before wrapping ": " lines as verbatim
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-exp.el (org-export-handle-comments): check for protection
before removing comments
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-entities.el (org-entities): Restructure the list.
(org-entities-help): Turn the help output into a buffer
in Org-mode, so that it becomes easier to find a symbol
in the structure.
(org-entities-create-table): Deal with new structure.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-agenda.el (org-write-agenda): Use backquotes to expand
`flet' at compile time.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-entry-properties): Make sure that standard property
names are used even if the user has customized time keywords.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-macs.el (org-not-nil): Return the value if not interpreted
as nil.
* org.el (org-entry-get):
(org-entry-get-with-inheritance): Interpret the value "nil"
as nil for properties.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-switch-to-buffer-other-window): Return the buffer.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-macs.el (org-not-nil): New function.
* org.el (org-block-todo-from-children-or-siblings-or-parent):
Use `org-not-nil' to interpret a property value of nil.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-truely-invisible-p): New function.
(org-beginning-of-line): Use `org-truely-invisible-p'.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-get-timestamps): No errors
while getting TODO state.
(org-agenda-highlight-todo): No error when no keyword has
been matched.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-timestamp-change): New optional argument UPDOWN.
Use this to identify calls from org-timestamp-up/down, so that we can
skip by rounding minutes in this case.
(org-timestamp-up):
(org-timestamp-down):
(org-timestamp-up-day):
(org-timestamp-down-day): Call org-timestamp-change with the
updown argument.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-action): Make `c' key call org-capture.
* org-capture.el: New file.
* org-compat.el (org-get-x-clipboard): Function moved here from
remember.el.
* org-mks.el: New file
* org.el (org-set-regexps-and-options): Allow statistic cookies as
part of complex headlines.
(org-find-olp): New argument THIS-BUFFER. When set, assume that the
OLP does not contain a file name.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-mode): Set `comment-start' instead of changing the
syntax of the `#' character.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-format-source-code-or-example): Mark examples
by a property. o
* org-html.el (org-export-html-close-lists-maybe): Check if raw
HTML stuff was actually made from an example
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* Makefile (LISPF): let's not compile files that won't often be used.
2010-07-19 Bastien Guerry <bzg@altern.org>
* org-latex.el: items are no longer skipped when their first line
ends on a protected element.
* org-list.el: protected environments looking like lists are not
exported anymore.
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-exp-blocks.el (org-export-blocks-preprocess):
cleanup trailing newline after block
2010-07-19 Bastien Guerry <bzg@altern.org>
* org-exp.el: comment regexp now matches documentation. No more
protection check when deleting comments before export.
2010-07-19 Bastien Guerry <bzg@altern.org>
* org-exp.el (org-export-preprocess-string):
now using `org-export-handle-include-files-recurse' to resolve
included files
2010-07-19 Bastien Guerry <bzg@altern.org>
* org-agenda.el (org-agenda-get-deadlines):
(org-agenda-get-scheduled):
* org.el (org-time-string-to-seconds):
For deadline and scheduled agenda display ignore the cyclic repeater
when calculating how many days late the task is. If you have a weekly
task and miss the date the agenda view will show more than a week late
now instead of resetting on the cyclic repeating date. This makes it
much more obvious when you missed a repeating task after the repeater.
2010-07-19 Bastien Guerry <bzg@altern.org>
* org-exp.el (org-export-mark-blockquote-verse-center):
Consider environments that end at eob.
2010-07-19 Mikael Fornius <mfo@abc.se>
* org.el (org-raise-scripts): Do not fontify sub/superscripts of text
with face `org-special-keyword'. Makes property keys as :LAST_REPEAT:
display correctly.
2010-07-19 Mikael Fornius <mfo@abc.se>
* org.el (org-at-property-p): Use save-match-data macro instead of let.
2010-07-19 Mikael Fornius <mfo@abc.se>
* org.el (test): Removed unused test function.
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-exp-blocks.el (org-export-blocks-preprocess): fixed typo
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-exp-blocks.el (org-export-blocks-postblock-hook): adding
documentation to and turning into a defcustom
2010-07-19 Eric Schulte <schulte.eric@gmail.com>
* org-exp.el (org-get-file-contents): by un-setting prefix1 to ""
instead of to nil we avoid errors when :prefix1 is defined, but
prefix is not.
2010-07-19 Nicolas Goaziou <n.goaziou@gmail.com>
* org-latex.el (org-export-latex-preprocess): Environments coming
from latex backend specific instructions (#+LaTeX) are already
protected and won't be treated as normal environments.
2010-07-19 Bastien Guerry <bzg@altern.org>
* org-timer.el (org-timer-set-timer): Fix typo in the docstring.
2010-07-19 Bastien Guerry <bzg@altern.org>
* org-timer.el (org-timer-set-timer): Use a prefix argument.
See the docstring of the function.
2010-07-19 Bastien Guerry <bzg@altern.org>
* org-timer.el (org-timer-set-timer): Fix bug about cancelling
timers.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-w3m.el (org-w3m-copy-for-org-mode)
(org-w3m-get-next-link-start, org-w3m-get-prev-link-start):
Get text property directly, not using macro `w3m-anchor'.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-emph-re): Document the match groups.
2010-07-19 Bernt Hansen <bernt@norang.ca>
* org-clock.el (org-clock-in): Set `org-clock-clocking-in' to
t before calling `org-clock-out', so that that function can
know its call context.
2010-07-19 Bastien Guerry <bzg@altern.org>
* org-timer.el (org-timer-default-timer): New variable.
(org-timer-set-timer): Use the new variable. Also offer the
possibility to replace the current timer by a new one.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-kill-note-or-show-branches): Hide subtree before
exposing the headings.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-add-planning-info): Remove the empty line also
if there is no whitespace at all in there.
* org-table.el (org-table-align): Fix alignment of strings
with invisible characters.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org.el (org-refile-cache-get): Return empty list of targets
when cache was cleared.
(org-clone-subtree-with-time-shift): Maybe create ID property
in cloned subtrees.
(org-clone-delete-id): New customization variable.
(org-clone-subtree-with-time-shift): Use customization
variable `org-clone-delete-id'.
(org-clone-subtree-with-time-shift): Remove empty property
drawer in cloned subtrees.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-refile-use-cache): New option.
(org-refile-cache, org-refile-markers): New variable.
(org-refile-marker, org-refile-cache-clear)
(org-refile-cache-check-set, org-refile-cache-put)
(org-refile-cache-get): New function.
(org-get-refile-targets): Use the refile cache.
* org-clock.el (org-clock-sum): Don't include running clock if
the time block is wrong.
2010-07-19 John Wiegley <jwiegley@gmail.com>
* org-clock.el (org-clock-clock-in, org-clock-in): Added
parameter `start-time'.
(org-clock-resolve-clock): Added parameter `clock-out-time'.
If set, and resolve-to is a past time, then the clock out
event occurs at `clock-out-time' rather than at `resolve-to'.
In this case, `resolve-to' becomes the clock in time.
(org-clock-jump-to-current-clock): Created new global command
to reveal the current clock.
(org-clock-resolve): Added new commands g/G and j/J, and a
help window describing all commands and their meaning.
(org-clock-resolve-expert): New customization variable.
(org-find-open-clocks): Fixed a bug that caused discovered
clocks not to match up with the currently active clock.
(org-resolve-clocks): Changed the argument
`also-non-dangling-p' to `only-dangling-p', since due to a bug
this was the default behavior all along.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-id.el (org-id-uuid): New function. Return string with
random (version 4) UUID.
(org-id-method): Make 'uuid the new default value.
(org-id-new): Use `org-id-uuid' if call to uuidgen program
does not return a UUID.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-format-image): Add support
for multicolumn figures in LaTeX.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org.el (org-clone-subtree-with-time-shift): Remove ID
property of original subtree in cloned subtrees.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-format-source-code-or-example):
XEmacs compatibility.
* org-latex.el (org-export-latex-tables): Accept comma in
align string.
* org-docbook.el (org-export-docbook-xslt-stylesheet): New option.
(org-export-docbook-xslt-proc-command): Fix docstring.
(org-export-docbook-xsl-fo-proc-command): Fix docstring.
(org-export-as-docbook-pdf): Improve
formatting of the xslt command.
* org-exp.el (org-infile-export-plist): Check for XSLT setting.
* org.el (org-file-contents): Improve error message.
(org-set-regexps-and-options): Remove spaces at both ends.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-docbook.el (org-export-as-docbook-pdf): Improve
formatting of the xslt command.
2010-07-19 Sebastian Rose <sebastian_rose@gmx.de>
* org-publish.el (org-publish-cache): Use one big hashmap for
each project defined in `org-publish-project-alist'.
(initialize-files-alist): Function removed.
(org-publish-validate-link): Function removed.
(org-publish-get-base-files): Add variable `sitemap-requested'
to avoid sorting where possible.
(org-publish-get-files): Function removed.
(org-publish-get-project-from-filename): Make independent of
file list.
(org-publish-file): New argument NO-CACHE.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-beginning-of-defun, org-end-of-defun): New
functions.
(org-mode): Install the `org-beginning-of-defun' and
`org-end-of-defun' functions.
(org-pretty-entities): New option.
(org-toggle-pretty-entities): New command.
(org-fontify-entities): New function.
(org-startup-options): New keywords for pretty entities.
(org-set-font-lock-defaults): Call the pretty entities
function.
* org-latex.el (org-export-latex-keywords-maybe): Protect the
TODO markup.
2010-07-19 Mikael Fornius <mfo@abc.se>
* org-habit.el (org-habit-build-graph): Help-echo date when
mouse is over stars.
2010-07-19 Jan Bker <jan.boecker@jboecker.de>
* org.el (org-file-apps): Improve docstring to reflect
grouping matches
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-set-startup-visibility): Fix empty line display.
* org-latex.el (org-export-latex-links): Use the formatting
function of the link type, if it is available.
* org-table.el (org-table-get-remote-range): Return to
original buffer when retrieving remote reference.
* org.el (org-display-inline-images): Do the entire buffer,
not just the narrowed region. Clear the cache.
(org-display-inline-images): Match mode file paths.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-wl.el (org-wl-store-link-folder): Don't throw error when
called on WL folder group.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-replace-escapes): Make sure the cdr is not nil.
(org-read-date): Make `M-v' and `C-v' scroll the popup calendar.
(org-mode): Revert comment syntax changes.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-sparse-tree): Make `C-c / t' search for all TODO
keywords, and `C-c / T' for a specific one.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-mode): Fix comment syntax settings.
* org-src.el (org-edit-src-allow-write-back-p): Define
variable.
* org.el (org-inline-image-overlays): New variable.
(org-toggle-inline-images, org-display-inline-images)
(org-remove-inline-images): New commands.
(org-mode-map): Define a key for `org-toggle-inline-images'.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-wl.el (org-wl-message-field): New function. Return
content of header field in message entity.
(org-wl-store-link): Call `org-wl-store-link-folder' or
`org-wl-store-link-message' depending on major-mode.
(org-wl-store-link-folder): New function. Store link to
Wanderlust folder.
(org-wl-store-link-message): New function. Store link to
Wanderlust message.
(org-wl-store-link-message): Store link to message while
visiting message.
(org-wl-open): Don't try to jump to message when opening a
folder link.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org.el (org-replace-escapes): Avoid infinite loop when
replace string contains escape sequence it replaces.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-crypt.el (org-crypt-key-for-heading): Use symmetric
encryption when now key is set.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-table.el (org-table-recalculate-buffer-tables)
(org-table-iterate-buffer-tables): New commands.
* org.el (org-check-for-hidden): When there is a region, skip
the check.
2010-07-19 Dan Davison <davison@stats.ox.ac.uk>
* org-src.el (org-edit-src-code): allow-write-back-p had
erroneously been omitted from let binding
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-sorting-choice): New sorting type alpha.
(org-cmp-alpha): New defsubst.
(org-em): New defsubst.
(org-entries-lessp): Only compute needed comparisons.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-html.el (org-format-org-table-html): Test all columns
for number content.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-latex.el (org-export-latex-treat-sub-super-char): Make
sure parenthesis matching is consistent.
* org-table.el (org-table-colgroup-line-p)
(org-table-cookie-line-p): New functions.
* org-exp.el (org-table-clean-before-export): Better tests for
colgroup and cookie lines.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-goto): Push a mark before changing
the position.
* org-footnote.el (org-footnote): New group.
(org-footnote-section)
(org-footnote-tag-for-non-org-mode-files): Fix typos.
* org-list.el (org-end-of-item-text-before-children): Also do
the right thing at the end of a file.
* org.el (org-set-packages-alist, org-get-packages-alist): New
function.
(org-export-latex-default-packages-alist)
(org-export-latex-packages-alist): Add extra flag to
each package, indicating if it should be used for snippets.
(org-create-formula-image): Add the snippet argument.
(org-splice-latex-header): New argument SNIPPET-P, pass it
through to `org-latex-packages-to-string'.
(org-latex-packages-to-string): New argument SNIPPET-P.
* org-latex.el (org-export-latex-make-header): Add the snippet
argument.
* org-docbook.el (org-export-as-docbook): Implement ordered
lists starting at some offset.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-link-types, org-open-at-point): Add doi links.
* org-ascii.el (org-export-ascii-preprocess): Remove list
startcounter cookies.
* org-list.el (org-renumber-ordered-list): Respect counter
start values.
* org-latex.el (org-export-latex-lists): Accept ordered list
item offset cookie.
* org-html.el (org-export-as-html): Accept ordered list
item offset cookie.
* org-indent.el (org-indent-mode): Turn off `indent-tabs-mode'
which messes up alignment of tags.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-clock.el (org-clock-cancel, org-clock-out): Make sure
the modeline display is removed.
* org-exp.el (org-export-format-drawer-function): Fix
docstring.
* org-agenda.el (org-agenda-refile): New optional argument
NO-UPDATE.
(org-agenda-refile): Call `org-agenda-redo' unless NO-UPDATE
is set.
(org-agenda-bulk-action): Call the refile command with updates
suppressed - but arrange for `org-agenda-redo' to be called at
the end.
* org.el (org-mode): Make table mapping quiet.
(org-table-map-tables): New optional argument QUIETLY.
* org-ascii.el (org-export-ascii-preprocess): Make table
mapping quiet.
* org-html.el (org-export-as-html, org-html-level-start): Change
XHTML IDs to not use dots.
* org-exp.el (org-export-define-heading-targets): Change
XHTML IDs to not use dots.
* org-docbook.el (org-export-docbook-level-start): Change
XHTML IDs to not use dots.
* org-latex.el (org-export-as-latex): Make sure that the
result buffer is in latex-mode.
* org.el (org-shiftup-final-hook, org-shiftdown-final-hook)
(org-shiftleft-final-hook, org-shiftright-final-hook): New
hooks.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-table.el (org-table-justify-field-maybe): Make sure that
inserting a value does not turn a line into a hline.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-clock.el (org-clock-sum): New argument HEADLINE-FILTER.
(org-clock-sum): Add property to selected headlines.
(org-dblock-write:clocktable): Make tags matcher.
* org.el (org-set-autofill-regexps): XEmacs compatibility.
* org-latex.el (org-export-latex-set-initial-vars): Allow "-"
in latex class definitions
* org.el (org-shiftup-hook, org-shiftdown-hook)
(org-shiftleft-hook, org-shiftright-hook): New hooks.
* org-entities.el (org-entities): Use \land and \lor for logical
operators.
* org.el (org-shiftmetaleft, org-shiftmetaright): Call the subtree
indentation commands.
(org-hidden-tree-error): New defsubst.
(org-metaleft, org-metaright): Check for hidden stuff and throw an
error.
(org-check-for-hidden): New function.
* org-list.el (org-item-re): New function.
(org-at-item-p): Use `org-item-re'.
(org-end-of-item-text-before-children): New function.
(org-outdent-item, org-indent-item): Arrange for leaving the
subtree alone.
(org-outdent-item-tree, org-indent-item-tree): New argument
NO-SUBTREE.
(org-indent-item-tree): Use `org-end-of-item-text-before-children'
to find the end for processing while ignoring the subtree.
* org-publish.el (org-publish-sitemap-sort-alphabetically)
(org-publish-sitemap-sort-folders)
(org-publish-sitemap-sort-ignore-case): New options.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-publish.el (org-publish-compare-directory-files): Fix sorting.
* org-compat.el (org-get-x-clipboard-compat): Use (featurep 'xemacs).
* org-publish.el (org-publish-project-alist): Update docstring.
(org-publish-file-title-cache): New variable.
(org-publish-initialize-files-alist): Initialize
`org-publish-initialize-files-alist' to nil.
(org-publish-sort-directory-files): New function.
(org-publish-projects): Access the new properties.
(org-publish-find-title): Use the file title cache.
(org-publish-find-title): Build the file title cache.
(org-publish-get-base-files-1): Sort files.
(org-publish-aux-preprocess): Do not throw an error when before
the first headline. Allow an empty target, meaning to link just
to the file.
(org-publish-index-generate-theindex.inc): Check if there is
actually a target and only then add it to the link.
(org-publish-projects): Fix a remaining issue with the last commit
* org-html.el (org-export-as-html): Treat verse as open/close
paragraph.
(org-export-html-close-lists-maybe): Allow to splice raw HTML into
and out of lists.
2010-07-19 Dan Davison <davison@stats.ox.ac.uk>
* org-src.el (org-edit-src-code): Allow the org-src edit buffer to
be used in a read-only mode.
(org-edit-src-code): Different message in read-only mode
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-src.el (org-edit-src-find-region-and-lang): Test for
table.el as late as possible.
* org-colview-xemacs.el: Make sure this file is never loaded into
Emacs. Remove all tests for XEmacs.
* org-colview.el: Make sure this file is never loaded into XEmacs.
* org-agenda.el (org-highlight, org-unhighlight): Use direct
overlay calls.
* org.el (org-key): Apply the translations defined in
`org-xemacs-key-equivalents'.
* org-mouse.el (org-mode-hook): Use `org-defkey'.
* org-compat.el (org-xemacs-key-equivalents): New constant.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-inlinetask.el (org-inlinetask-defaut-state): New option.
(org-inlinetask-insert-task): Use `org-inlinetask-defaut-state'.
Obey `org-odd-levels-only'.
* org-compat.el (org-find-overlays): Use overlays-in/at.
* org.el (org-remove-empty-overlays-at)
(org-outline-overlay-data, org-hide-block-toggle)
(org-format-latex, org-context): Use overlays-in/at.
* org-src.el (org-edit-src-exit): Use overlays-in/at.
* org-agenda.el (org-agenda-mark-clocking-task)
(org-agenda-fontify-priorities, org-agenda-dim-blocked-tasks)
(org-agenda-entry-text-hide)
(org-agenda-fix-tags-filter-overlays-at)
(org-agenda-bulk-remove-overlays): Use overlays-in/at.
* org-compat.el (org-overlays-at): Function removed.
(org-overlays-in): Function removed.
2010-07-19 Bastien Guerry <bzg@altern.org>
* org-clock.el (org-clock-set-current): Just return the headline
itself, strip the TODO keyword, the priority cookie and the tags.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-compat.el (org-xemacs-without-invisibility): New macro.
(org-xemacs-without-invisibility): New macro.
(org-indent-to-column, org-indent-line-to, org-move-to-column):
Redefine using the macro `org-xemacs-without-invisibility'.
* org.el (org-mode, org-org-menu): Use `add-to-invisibility-spec'.
* org-table.el (orgtbl-mode): Use `add-to-invisibility-spec'.
* org-compat.el (org-make-overlay, org-delete-overlay)
(org-overlay-start, org-overlay-end, org-overlay-put)
(org-overlay-get, org-overlay-move, org-overlay-buffer): Functions
removed.
(org-add-to-invisibility-spec): Function removed.
* org-html.el (org-export-as-html-and-open): Add argument to
kill-buffer.
* org-habit.el (require): `calendar' is now required already by
org.el on top level.
* org-clock.el (require): `calendar' is now required already by
org.el on top level.
* org-agenda.el (require, org-timeline, org-agenda-list)
(org-todo-list, org-agenda-to-appt): `calendar' is now required
already by org.el on top level.
* org.el (org-export-latex-fix-inputenc): Declare function.
* org-agenda.el (org-agenda-goto-calendar): Do not bind obsolete
variables.
* org.el (calendar): Require calendar now on top level in org.el
and define aliases to new variables when needed.
(org-read-date, org-goto-calendar): Do not bind obsolete
variables.
* org-clock.el (org-clock-out, org-clock-cancel): Get rid of
compilation warning, add comment that this cannot be done with
`with-current-buffer'.
* org-wl.el (org-wl-open): Use `with-current-buffer'.
* org.el (overlay, org-remove-empty-overlays-at)
(org-outline-overlay-data, org-set-outline-overlay-data)
(org-show-block-all, org-hide-block-toggle)
(org-highlight-new-match, org-remove-occur-highlights)
(org-tags-overlay, org-fast-tag-selection, org-date-ovl)
(org-read-date, org-read-date-display, org-eval-in-calendar)
(org-format-latex, org-context)
(org-speedbar-restriction-lock-overlay)
(org-speedbar-set-agenda-restriction): Use the normal overlay API.
* org-table.el (org-table-add-rectangle-overlay)
(org-table-remove-rectangle-highlight)
(org-table-overlay-coordinates)
(org-table-toggle-coordinate-overlays): Use the normal overlay
API.
* org-src.el (org-edit-src-code, org-edit-fixed-width-region)
(org-edit-src-exit, org-src-mode-configure-edit-buffer): Use the
normal overlay API.
* org-colview.el (org-columns-new-overlay)
(org-columns-display-here, org-columns-remove-overlays)
(org-columns-edit-value, org-columns-next-allowed-value)
(org-columns-update): Use the normal overlay API.
* org-clock.el (org-clock-out, org-clock-cancel)
(org-clock-put-overlay, org-clock-remove-overlays): Use the normal
overlay API.
* org-agenda.el (org-agenda-mark-filtered-text)
(org-agenda-mark-clocking-task, org-agenda-fontify-priorities)
(org-agenda-dim-blocked-tasks, org-agenda-entry-text-show-here)
(org-agenda-entry-text-hide)
(org-agenda-restriction-lock-overlay)
(org-agenda-set-restriction-lock)
(org-agenda-filter-by-tag-hide-line)
(org-agenda-fix-tags-filter-overlays-at)
(org-agenda-filter-by-tag-show-all, org-hl)
(org-agenda-goto-calendar, org-agenda-bulk-mark)
(org-agenda-bulk-remove-overlays): Use the normal overlay API.
* org-freemind.el (org-freemind-from-org-mode-node)
(org-freemind-from-org-mode, )
(org-freemind-from-org-sparse-tree, org-freemind-to-org-mode): Use
interactive-p instead of called-interactively, because this is
backward compatible with older Emacsen I still support..
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-exp.el (org-export-define-heading-targets): Fix bug in
regexp finding ID and CUSTOM_ID properties.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-footnote.el (org-footnote-goto-previous-reference): Renamed
from `org-footnote-goto-next-reference'.
* org.el (org-auto-repeat-maybe): Only record LAST_REPEAT if
org-log-repeat is non-nil, or if there is clocking data in the
entry.
* org-crypt.el (org-encrypt-entry): Improve mapping behavior.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-align-all-tags): New command.
2010-07-19 David Maus <dmaus@ictsoc.de>
* org-wl.el (org-wl-link-remove-filter): New customizable
variable. If non-nil, filter conditions are stripped when storing
link to message in filter folder.
(org-wl-shimbun-prefer-web-links): New customizable variable. If
non-nil, links to shimbun messages are created as web links to
message source.
(org-wl-nntp-prefer-web-links): New customizable variable. If
non-nil, links to nntp message are created as web links to gmane
or googlegroups.
(org-wl-namazu-default-index): New customizable variable.
Directory of namazu search index that should be used as default
when opening a link in a search folder.
(org-wl-folder-types): New constant. Wanderlust folder type
indicators.
(org-wl-folder-type): New function. Return type of Wanderlust
folder.
(org-wl-store-link): Create web links for shimbun or nntp messages
and strip filter conditions depending on customizable variables.
(org-wl-open): Open namazu search folder for message when called
with prefix.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-remove-if, org-remove-if-not): New functions.
(org-open-file): Use internal remove-if functions.
2010-07-19 Jan Bcker <jan.boecker@jboecker.de>
* org.el (org-file-apps-entry-match-against-dlink-p): new function.
(org-file-apps-ex): remove variable.
(org-open-file): Integrate org-file-apps-ex functionality back
into org-file-apps, and decide whether to match a regexp against
the link or the filename using org-file-apps-entry-uses-grouping-p.
2010-07-19 Jan Bcker <jan.boecker@jboecker.de>
* org.el (org-file-apps-ex): new variable.
(org-open-file): Before considering org-file-apps, first match the
regexps from org-file-apps-ex against the whole link. See
docstring of org-file-apps-ex.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-export-latex-default-packages-alist): Remove
microtype package.
(org-todo-repeat-to-state): New variable.
(org-auto-repeat-maybe): Allow user-selected target states.
(org-default-properties): Add the new property REPEAT_TO_STATE.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org-mobile.el (org-mobile-check-setup): Make sure that there is
a binary to compute checksums.
2010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
* org.texi: Add macros to get plain quotes in PDF output.
List additional contributors.
(Capture): New section, replaces the section about remember.
(Working With Source Code): New chapter, focused on documenting Org
Babel.
(Code evaluation security): New section.
(MobileOrg): Document DropBox support.
(TaskJuggler export): Document taskjuggler and Gantt chart support.
(Special symbols): Show how to display UTF8 characters for entities.
(Global TODO list): Clarify the use of the "M" key and the differences
to the "m" key.
(RSS Feeds): Mention Atom feeds as well.
(Setting tags): Remove paragraph about
`org-complete-tags-always-offer-all-agenda-tags'.
author | Carsten Dominik <carsten.dominik@gmail.com> |
---|---|
date | Mon, 19 Jul 2010 11:47:27 +0200 |
parents | a91e94388547 |
children | 376148b31b5e |
line wrap: on
line source
\input texinfo @c -*-texinfo-*- @comment %**start of header @setfilename ../../info/flymake @set VERSION 0.3 @set UPDATED April 2004 @settitle GNU Flymake @value{VERSION} @syncodeindex pg cp @comment %**end of header @copying This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}), which is a universal on-the-fly syntax checker for GNU Emacs. Copyright @copyright{} 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License''. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and modify this GNU manual. Buying copies from the FSF supports it in developing GNU and promoting software freedom.'' @end quotation @end copying @dircategory Emacs @direntry * Flymake: (flymake). A universal on-the-fly syntax checker. @end direntry @titlepage @title GNU Flymake @subtitle for version @value{VERSION}, @value{UPDATED} @author Pavel Kobiakov(@email{pk_at_work@@yahoo.com}) @page @vskip 0pt plus 1filll @insertcopying @end titlepage @contents @ifnottex @node Top @top GNU Flymake @insertcopying @end ifnottex @menu * Overview of Flymake:: * Installing Flymake:: * Using Flymake:: * Configuring Flymake:: * Flymake Implementation:: * GNU Free Documentation License:: * Index:: @end menu @node Overview of Flymake @chapter Overview @cindex Overview of Flymake Flymake is a universal on-the-fly syntax checker implemented as an Emacs minor mode. Flymake runs the pre-configured syntax check tool (compiler for C++ files, @code{perl} for perl files, etc.) in the background, passing it a temporary copy of the current buffer, and parses the output for known error/warning message patterns. Flymake then highlights erroneous lines (i.e. lines for which at least one error or warning has been reported by the syntax check tool), and displays an overall buffer status in the mode line. Status information displayed by Flymake contains total number of errors and warnings reported for the buffer during the last syntax check. @code{flymake-goto-next-error} and @code{flymake-goto-prev-error} functions allow for easy navigation to the next/previous erroneous line, respectively. Calling @code{flymake-display-err-menu-for-current-line} will popup a menu containing error messages reported by the syntax check tool for the current line. Errors/warnings belonging to another file, such as a @code{.h} header file included by a @code{.c} file, are shown in the current buffer as belonging to the first line. Menu items for such messages also contain a filename and a line number. Selecting such a menu item will automatically open the file and jump to the line with error. Syntax check is done 'on-the-fly'. It is started whenever @itemize @bullet @item buffer is loaded @item a newline character is added to the buffer @item some changes were made to the buffer more than @code{0.5} seconds ago (the delay is configurable). @end itemize Flymake is a universal syntax checker in the sense that it's easily extended to support new syntax check tools and error message patterns. @xref{Configuring Flymake}. @node Installing Flymake @chapter Installing @cindex Installing Flymake Flymake is packaged in a single file, @code{flymake.el}. To install/update Flymake, place @code{flymake.el} to a directory somewhere on Emacs load path. You might also want to byte-compile @code{flymake.el} to improve performance. Also, place the following line in the @code{.emacs} file. @lisp (require 'flymake) @end lisp You might also map the most frequently used Flymake functions, such as @code{flymake-goto-next-error}, to some keyboard shortcuts: @lisp (global-set-key [f3] 'flymake-display-err-menu-for-current-line) (global-set-key [f4] 'flymake-goto-next-error) @end lisp @node Using Flymake @chapter Using Flymake @cindex Using Flymake @menu * Flymake mode:: * Running the syntax check:: * Navigating to error lines:: * Viewing error messages:: * Syntax check statuses:: * Troubleshooting:: @end menu @node Flymake mode @section Flymake mode @cindex flymake-mode Flymake is an Emacs minor mode. To use Flymake, you must first activate @code{flymake-mode} by using the @code{flymake-mode} function. Instead of manually activating @code{flymake-mode}, you can configure Flymake to automatically enable @code{flymake-mode} upon opening any file for which syntax check is possible. To do so, place the following line in @code{.emacs}: @lisp (add-hook 'find-file-hook 'flymake-find-file-hook) @end lisp @node Running the syntax check @section Running the syntax check @cindex Manually starting the syntax check When @code{flymake-mode} is active, syntax check is started automatically on any of the three conditions mentioned above. Syntax check can also be started manually by using the @code{flymake-start-syntax-check-for-current-buffer} function. This can be used, for example, when changes were made to some other buffer affecting the current buffer. @node Navigating to error lines @section Navigating to error lines @cindex Navigating to error lines After syntax check is completed, lines for which at least one error or warning has been reported are highlighted, and total number of errors and warning is shown in the mode line. Use the following functions to navigate the highlighted lines. @multitable @columnfractions 0.25 0.75 @item @code{flymake-goto-next-error} @tab Moves point to the next erroneous line, if any. @item @code{flymake-goto-prev-error} @tab Moves point to the previous erroneous line. @end multitable These functions treat erroneous lines as a linked list. Therefore, @code{flymake-goto-next-error} will go to the first erroneous line when invoked in the end of the buffer. @node Viewing error messages @section Viewing error messages @cindex Viewing error messages To view error messages belonging to the current line, use the @code{flymake-display-err-menu-for-current-line} function. If there's at least one error or warning reported for the current line, this function will display a popup menu with error/warning texts. Selecting the menu item whose error belongs to another file brings forward that file with the help of the @code{flymake-goto-file-and-line} function. @node Syntax check statuses @section Syntax check statuses @cindex Syntax check statuses After syntax check is finished, its status is displayed in the mode line. The following statuses are defined. @multitable @columnfractions 0.25 0.75 @item Flymake* or Flymake:E/W* @tab Flymake is currently running. For the second case, E/W contains the error and warning count for the previous run. @item Flymake @tab Syntax check is not running. Usually this means syntax check was successfully passed (no errors, no warnings). Other possibilities are: syntax check was killed as a result of executing @code{flymake-compile}, or syntax check cannot start as compilation is currently in progress. @item Flymake:E/W @tab Number of errors/warnings found by the syntax check process. @item Flymake:! @tab Flymake was unable to find master file for the current buffer. @end multitable The following errors cause a warning message and switch flymake mode OFF for the buffer. @multitable @columnfractions 0.25 0.75 @item CFGERR @tab Syntax check process returned nonzero exit code, but no errors/warnings were reported. This indicates a possible configuration error (for example, no suitable error message patterns for the syntax check tool). @item NOMASTER @tab Flymake was unable to find master file for the current buffer. @item NOMK @tab Flymake was unable to find a suitable buildfile for the current buffer. @item PROCERR @tab Flymake was unable to launch a syntax check process. @end multitable @node Troubleshooting @section Troubleshooting @cindex Logging @cindex Troubleshooting Flymake uses a simple logging facility for indicating important points in the control flow. The logging facility sends logging messages to the @code{*Messages*} buffer. The information logged can be used for resolving various problems related to Flymake. Logging output is controlled by the @code{flymake-log-level} variable. @code{3} is the most verbose level, and @code{-1} switches logging off. @node Configuring Flymake @chapter Configuring and Extending Flymake @cindex Configuring and Extending Flymake @menu * Customizable variables:: * Adding support for a new syntax check tool:: @end menu Flymake was designed to be easily extended for supporting new syntax check tools and error message patterns. @node Customizable variables @section Customizable variables @cindex Customizable variables This section summarizes variables used for Flymake configuration. @table @code @item flymake-log-level Controls logging output, see @ref{Troubleshooting}. @item flymake-allowed-file-name-masks A list of @code{(filename-regexp, init-function, cleanup-function getfname-function)} for configuring syntax check tools. @xref{Adding support for a new syntax check tool}. @item flymake-buildfile-dirs A list of directories (relative paths) for searching a buildfile. @xref{Locating the buildfile}. @item flymake-master-file-dirs A list of directories for searching a master file. @xref{Locating a master file}. @item flymake-get-project-include-dirs-function A function used for obtaining a list of project include dirs (C/C++ specific). @xref{Getting the include directories}. @item flymake-master-file-count-limit @itemx flymake-check-file-limit Used when looking for a master file. @xref{Locating a master file}. @item flymake-err-line-patterns Patterns for error/warning messages in the form @code{(regexp file-idx line-idx col-idx err-text-idx)}. @xref{Parsing the output}. @item flymake-compilation-prevents-syntax-check A flag indicating whether compilation and syntax check of the same file cannot be run simultaneously. @item flymake-no-changes-timeout If any changes are made to the buffer, syntax check is automatically started after @code{flymake-no-changes-timeout} seconds. @item flymake-gui-warnings-enabled A boolean flag indicating whether Flymake will show message boxes for non-recoverable errors. If @code{flymake-gui-warnings-enabled} is @code{nil}, these errors will only be logged to the @code{*Messages*} buffer. @item flymake-start-syntax-check-on-newline A boolean flag indicating whether to start syntax check after a newline character is added to the buffer. @item flymake-errline A custom face for highlighting lines for which at least one error has been reported. @item flymake-warnline A custom face for highlighting lines for which at least one warning and no errors have been reported. @end table @node Adding support for a new syntax check tool @section Adding support for a new syntax check tool @cindex Adding support for a new syntax check tool @menu * Example -- Configuring a tool called directly:: * Example -- Configuring a tool called via make:: @end menu Syntax check tools are configured using the @code{flymake-allowed-file-name-masks} list. Each item of this list has the following format: @lisp (filename-regexp, init-function, cleanup-function, getfname-function) @end lisp @table @code @item filename-regexp This field is used as a key for locating init/cleanup/getfname functions for the buffer. Items in @code{flymake-allowed-file-name-masks} are searched sequentially. The first item with @code{filename-regexp} matching buffer filename is selected. If no match is found, @code{flymake-mode} is switched off. @item init-function @code{init-function} is required to initialize the syntax check, usually by creating a temporary copy of the buffer contents. The function must return @code{(list cmd-name arg-list)}. If @code{init-function} returns null, syntax check is aborted, by @code{flymake-mode} is not switched off. @item cleanup-function @code{cleanup-function} is called after the syntax check process is complete and should take care of proper deinitialization, which is usually deleting a temporary copy created by the @code{init-function}. @item getfname-function This function is used for translating filenames reported by the syntax check tool into ``real'' filenames. Filenames reported by the tool will be different from the real ones, as actually the tool works with the temporary copy. In most cases, the default implementation provided by Flymake, @code{flymake-get-real-file-name}, can be used as @code{getfname-function}. @end table To add support for a new syntax check tool, write corresponding @code{init-function}, and, optionally @code{cleanup-function} and @code{getfname-function}. If the format of error messages reported by the new tool is not yet supported by Flymake, add a new entry to the @code{flymake-err-line-patterns} list. The following sections contain some examples of configuring Flymake support for various syntax check tools. @node Example -- Configuring a tool called directly @subsection Example -- Configuring a tool called directly @cindex Adding support for perl In this example, we will add support for @code{perl} as a syntax check tool. @code{perl} supports the @code{-c} option which does syntax checking. First, we write the @code{init-function}: @lisp (defun flymake-perl-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) (local-file (file-relative-name temp-file (file-name-directory buffer-file-name)))) (list "perl" (list "-wc " local-file)))) @end lisp @code{flymake-perl-init} creates a temporary copy of the buffer contents with the help of @code{flymake-init-create-temp-buffer-copy}, and builds an appropriate command line. Next, we add a new entry to the @code{flymake-allowed-file-name-masks}: @lisp (setq flymake-allowed-file-name-masks (cons '(".+\\.pl$" flymake-perl-init flymake-simple-cleanup flymake-get-real-file-name) flymake-allowed-file-name-masks)) @end lisp Note that we use standard @code{cleanup-function} and @code{getfname-function}. Finally, we add an entry to @code{flymake-err-line-patterns}: @lisp (setq flymake-err-line-patterns (cons '("\\(.*\\) at \\([^ \n]+\\) line \\([0-9]+\\)[,.\n]" 2 3 nil 1) flymake-err-line-patterns)) @end lisp @node Example -- Configuring a tool called via make @subsection Example -- Configuring a tool called via make @cindex Adding support for C (gcc+make) In this example we will add support for C files syntax checked by @code{gcc} called via @code{make}. We're not required to write any new functions, as Flymake already has functions for @code{make}. We just add a new entry to the @code{flymake-allowed-file-name-masks}: @lisp (setq flymake-allowed-file-name-masks (cons '(".+\\.c$" flymake-simple-make-init flymake-simple-cleanup flymake-get-real-file-name) flymake-allowed-file-name-masks)) @end lisp @code{flymake-simple-make-init} builds the following @code{make} command line: @lisp (list "make" (list "-s" "-C" base-dir (concat "CHK_SOURCES=" source) "SYNTAX_CHECK_MODE=1" "check-syntax")) @end lisp @code{base-dir} is a directory containing @code{Makefile}, see @ref{Locating the buildfile}. Thus, @code{Makefile} must contain the @code{check-syntax} target. In our case this target might look like this: @verbatim check-syntax: gcc -o nul -S ${CHK_SOURCES} @end verbatim The format of error messages reported by @code{gcc} is already supported by Flymake, so we don't have to add a new entry to @code{flymake-err-line-patterns}. @node Flymake Implementation @chapter Flymake Implementation @cindex Implementation details @menu * Determining whether syntax check is possible:: * Making a temporary copy:: * Locating a master file:: * Getting the include directories:: * Locating the buildfile:: * Starting the syntax check process:: * Parsing the output:: * Highlighting erroneous lines:: * Interaction with other modes:: @end menu Syntax check is started by calling @code{flymake-start-syntax-check-for-current-buffer}. Flymake first determines whether it is able to do syntax check. It then saves a copy of the buffer in a temporary file in the buffer's directory (or in the system temp directory -- for java files), creates a syntax check command and launches a process with this command. The output is parsed using a list of error message patterns, and error information (file name, line number, type and text) is saved. After the process has finished, Flymake highlights erroneous lines in the buffer using the accumulated error information. @node Determining whether syntax check is possible @section Determining whether syntax check is possible @cindex Syntax check models @cindex Master file Syntax check is considered possible if there's an entry in @code{flymake-allowed-file-name-masks} matching buffer's filename and its @code{init-function} returns non-@code{nil} value. Two syntax check modes are distinguished: @enumerate @item Buffer can be syntax checked in a standalone fashion, that is, the file (its temporary copy, in fact) can be passed over to the compiler to do the syntax check. Examples are C/C++ (.c, .cpp) and Java (.java) sources. @item Buffer can be syntax checked, but additional file, called master file, is required to perform this operation. A master file is a file that includes the current file, so that running a syntax check tool on it will also check syntax in the current file. Examples are C/C++ (.h, .hpp) headers. @end enumerate These modes are handled inside init/cleanup/getfname functions, see @ref{Adding support for a new syntax check tool}. Flymake contains implementations of all functionality required to support different syntax check modes described above (making temporary copies, finding master files, etc.), as well as some tool-specific (routines for @code{make}, @code{Ant}, etc.) code. @node Making a temporary copy @section Making a temporary copy @cindex Temporary copy of the buffer @cindex Master file After the possibility of the syntax check has been determined, a temporary copy of the current buffer is made so that the most recent unsaved changes could be seen by the syntax check tool. Making a copy is quite straightforward in a standalone case (mode @code{1}), as it's just saving buffer contents to a temporary file. Things get trickier, however, when master file is involved, as it requires to @itemize @bullet @item locate a master file @item patch it to include the current file using its new (temporary) name. @end itemize Locating a master file is discussed in the following section. Patching just changes all appropriate lines of the master file so that they use the new (temporary) name of the current file. For example, suppose current file name is @code{file.h}, the master file is @code{file.cpp}, and it includes current file via @code{#include "file.h"}. Current file's copy is saved to file @code{file_flymake.h}, so the include line must be changed to @code{#include "file_flymake.h"}. Finally, patched master file is saved to @code{file_flymake_master.cpp}, and the last one is passed to the syntax check tool. @node Locating a master file @section Locating a master file @cindex Master file Master file is located in two steps. First, a list of possible master files is built. A simple name matching is used to find the files. For a C++ header @code{file.h}, Flymake searches for all @code{.cpp} files in the directories whose relative paths are stored in a customizable variable @code{flymake-master-file-dirs}, which usually contains something like @code{("." "./src")}. No more than @code{flymake-master-file-count-limit} entries is added to the master file list. The list is then sorted to move files with names @code{file.cpp} to the top. Next, each master file in a list is checked to contain the appropriate include directives. No more than @code{flymake-check-file-limit} of each file are parsed. For @code{file.h}, the include directives to look for are @code{#include "file.h"}, @code{#include "../file.h"}, etc. Each include is checked against a list of include directories (see @ref{Getting the include directories}) to be sure it points to the correct @code{file.h}. First matching master file found stops the search. The master file is then patched and saved to disk. In case no master file is found, syntax check is aborted, and corresponding status (!) is reported in the mode line. @node Getting the include directories @section Getting the include directories @cindex Include directories (C/C++ specific) Two sets of include directories are distinguished: system include directories and project include directories. The former is just the contents of the @code{INCLUDE} environment variable. The latter is not so easy to obtain, and the way it can be obtained can vary greatly for different projects. Therefore, a customizable variable @code{flymake-get-project-include-dirs-function} is used to provide the way to implement the desired behavior. The default implementation, @code{flymake-get-project-include-dirs-imp}, uses a @code{make} call. This requires a correct base directory, that is, a directory containing a correct @code{Makefile}, to be determined. As obtaining the project include directories might be a costly operation, its return value is cached in the hash table. The cache is cleared in the beginning of every syntax check attempt. @node Locating the buildfile @section Locating the buildfile @cindex Locating the buildfile @cindex buildfile, locating @cindex Makefile, locating Flymake can be configured to use different tools for performing syntax checks. For example, it can use direct compiler call to syntax check a perl script or a call to @code{make} for a more complicated case of a @code{C/C++} source. The general idea is that simple files, like perl scripts and html pages, can be checked by directly invoking a corresponding tool. Files that are usually more complex and generally used as part of larger projects, might require non-trivial options to be passed to the syntax check tool, like include directories for C++. The latter files are syntax checked using some build tool, like @code{make} or @code{Ant}. All @code{make} configuration data is usually stored in a file called @code{Makefile}. To allow for future extensions, flymake uses a notion of buildfile to reference the 'project configuration' file. Special function, @code{flymake-find-buildfile} is provided for locating buildfiles. Searching for a buildfile is done in a manner similar to that of searching for possible master files. A customizable variable @code{flymake-buildfile-dirs} holds a list of relative paths to the buildfile. They are checked sequentially until a buildfile is found. In case there's no build file, syntax check is aborted. Buildfile values are also cached. @node Starting the syntax check process @section Starting the syntax check process @cindex Syntax check process The command line (command name and the list of arguments) for launching a process is returned by the initialization function. Flymake then just calls @code{start-process} to start an asynchronous process and configures process filter and sentinel which is used for processing the output of the syntax check tool. @node Parsing the output @section Parsing the output @cindex Parsing the output The output generated by the syntax check tool is parsed in the process filter/sentinel using the error message patterns stored in the @code{flymake-err-line-patterns} variable. This variable contains a list of items of the form @code{(regexp file-idx line-idx err-text-idx)}, used to determine whether a particular line is an error message and extract file name, line number and error text, respectively. Error type (error/warning) is also guessed by matching error text with the '@code{^[wW]arning}' pattern. Anything that was not classified as a warning is considered an error. Type is then used to sort error menu items, which shows error messages first. Flymake is also able to interpret error message patterns missing err-text-idx information. This is done by merely taking the rest of the matched line (@code{(substring line (match-end 0))}) as error text. This trick allows to make use of a huge collection of error message line patterns from @code{compile.el}. All these error patterns are appended to the end of @code{flymake-err-line-patterns}. The error information obtained is saved in a buffer local variable. The buffer for which the process output belongs is determined from the process-id@w{}->@w{}buffer mapping updated after every process launch/exit. @node Highlighting erroneous lines @section Highlighting erroneous lines @cindex Erroneous lines, faces Highlighting is implemented with overlays and happens in the process sentinel, after calling the cleanup function. Two customizable faces are used: @code{flymake-errline} and @code{flymake-warnline}. Errors belonging outside the current buffer are considered to belong to line 1 of the current buffer. @node Interaction with other modes @section Interaction with other modes @cindex Interaction with other modes @cindex Interaction with compile mode The only mode flymake currently knows about is @code{compile}. Flymake can be configured to not start syntax check if it thinks the compilation is in progress. The check is made by the @code{flymake-compilation-is-running}, which tests the @code{compilation-in-progress} variable. The reason why this might be useful is saving CPU time in case both syntax check and compilation are very CPU intensive. The original reason for adding this feature, though, was working around a locking problem with MS Visual C++ compiler. Flymake also provides an alternative command for starting compilation, @code{flymake-compile}: @lisp (defun flymake-compile () "Kill all flymake syntax checks then start compilation." (interactive) (flymake-stop-all-syntax-checks) (call-interactively 'compile)) @end lisp It just kills all the active syntax check processes before calling @code{compile}. @node GNU Free Documentation License @appendix GNU Free Documentation License @include doclicense.texi @node Index @unnumbered Index @printindex cp @bye @ignore arch-tag: 9f0db077-5598-49ab-90b9-8df9248a63ec @end ignore