]> git.lyx.org Git - lyx.git/blobdiff - src/LyXAction.cpp
Check path of Qt tools if qtchooser is detected
[lyx.git] / src / LyXAction.cpp
index 7c55ecd6a59b7b4c7bd474516dd92c5e86fb0205..24687c79f0c201c5b40df085afba8c66290f81e3 100644 (file)
@@ -35,7 +35,7 @@ namespace lyx {
      Here's the set of rules to apply when a new command name is introduced:
 
      1) Use the object.event order. That is, use `word-forward'
-       instead of `forward-word'.
+        instead of `forward-word'.
      2) Don't introduce an alias for an already named object. Same for events.
      3) Forward movement or focus is called `forward' (not `right').
      4) Backward movement or focus is called `backward' (not `left').
@@ -57,16 +57,18 @@ namespace lyx {
  *
  * Doxygen template below. Some notes: Parameters should be set in uppercase
  * and put in <BRACKETS>, [<PARAM>] means optional one.
+ *
+ * Use spaces for indentation (doxy -> .lyx generator is tab-sensitive).
  */
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_
- * \li Action: 
- * \li Notion: 
- * \li Syntax: 
- * \li Params: 
+ * \li Action:
+ * \li Notion:
+ * \li Syntax:
+ * \li Params:
  * \li Sample:
- * \li Origin: 
+ * \li Origin:
  * \endvar
  */
 
@@ -74,7 +76,7 @@ LyXAction lyxaction;
 
 
 void LyXAction::newFunc(FuncCode action, string const & name,
-                       unsigned int attrib, LyXAction::func_type type)
+                       unsigned int attrib, LyXAction::FuncType type)
 {
        lyx_func_map[name] = action;
        FuncInfo tmpinfo;
@@ -97,13 +99,14 @@ void LyXAction::init()
        // magnitudes faster.
 
        static bool init;
-       if (init) return;
+       if (init)
+               return;
 
        struct ev_item {
                FuncCode action;
                char const * name;
                unsigned int attrib;
-               func_type type;
+               FuncType type;
        };
 
        ev_item const items[] = {
@@ -196,6 +199,14 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_ACCENT_OGONEK, "accent-ogonek", Noop, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_ACCENT_PERISPOMENI
+ * \li Action: Adds a perispomeni (Greek circumflex)
+               over the next character typed.
+ * \li Syntax: accent-perispomeni
+ * \endvar
+ */
+               { LFUN_ACCENT_PERISPOMENI, "accent-perispomeni", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_ACCENT_TIE
  * \li Action: Adds a tie \htmlonly (a&#865;)\endhtmlonly
@@ -314,21 +325,14 @@ void LyXAction::init()
  */
                { LFUN_WRAP_INSERT, "wrap-insert", Noop, Edit },
 /*!
- * \var lyx::FuncCode lyx::LFUN_OPTIONAL_INSERT
- * \li Action: Inserts an optional-argument (short title) inset.
- * \li Syntax: optional-insert
+ * \var lyx::FuncCode lyx::LFUN_ARGUMENT_INSERT
+ * \li Action: Inserts an argument (short title) inset.
+ * \li Syntax: argument-insert <argument nr>
+ * \li Params: <argument nr>: see layout declarations
  * \li Origin: vermeer, 12 Aug 2002
  * \endvar
  */
-               { LFUN_OPTIONAL_INSERT, "optional-insert", Noop, Edit },
-/*!
- * \var lyx::FuncCode lyx::LFUN_LINE_INSERT
- * \li Action: Inserts a horizontal line.
- * \li Syntax: line-insert
- * \li Origin: Andre, Oct 27 2003
- * \endvar
- */
-               { LFUN_LINE_INSERT, "line-insert", Noop, Edit },
+               { LFUN_ARGUMENT_INSERT, "argument-insert", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_NEWPAGE_INSERT
  * \li Action: Inserts a new page.
@@ -365,12 +369,20 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_LISTING_INSERT, "listing-insert", Noop, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_PREVIEW_INSERT
+ * \li Action: Inserts a new preview inset.
+ * \li Syntax: preview-insert
+ * \li Origin: vfr, 28 Mar 2010
+ * \endvar
+ */
+               { LFUN_PREVIEW_INSERT, "preview-insert", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_TAB_INSERT
  * \li Action: Insert a tab into a listings inset.
  * \li Notion: It also works on a selection.
  * \li Syntax: tab-insert
- * \li Origin: vfvanravesteijn, Sep 30 2008
+ * \li Origin: vfr, Sep 30 2008
  * \endvar
  */
                { LFUN_TAB_INSERT, "tab-insert", SingleParUpdate, Edit },
@@ -380,16 +392,16 @@ void LyXAction::init()
                a listings inset.
  * \li Notion: It also works on a selection - it removes a tab or spaces from the
                beginning of each line spanned by the selection. This is useful if
-              you want to indent/unindent multiple lines in one action.
+               you want to indent/unindent multiple lines in one action.
  * \li Syntax: tab-delete
- * \li Origin: vfvanravesteijn, Sep 30 2008
+ * \li Origin: vfr, Sep 30 2008
  * \endvar
  */
                { LFUN_TAB_DELETE, "tab-delete", SingleParUpdate, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_QUOTE_INSERT
  * \li Action: Inserts quotes according to the type and quote-language preference.
- * \li Action: Currently  English, Swedish, German, Polish, French, Danish quotes
+ * \li Notion: Currently English, Swedish, German, Polish, French, Danish quotes
                are distinguished.
  * \li Syntax: quote-insert [<TYPE>]
  * \li Params: <TYPE>: 'single' for single quotes, otherwise double quotes will be used.
@@ -403,11 +415,20 @@ void LyXAction::init()
  * \li Notion: Apart from lfun arguments you can use the following method: \n
                1. input the type and argument of this inset, e.g. "menu paste", in
                the work area.\n
-              2. select the text and run info-insert lfun.
+               2. select the text and run info-insert lfun.
  * \li Syntax: info-insert <TYPE> <ARG>
- * \li Params: <TYPE>: shortcut|lyxrc|package|textclass|menu|buffer \n
+ * \li Params: <TYPE>: shortcut[s]|lyxrc|lyxinfo|package|textclass|menu|buffer \n
                <ARG>: argument for a given type. Look into InsetInfo.h for detailed
-                     description.
+                      description. \n
+                     shortcut[s]: name of lfun (e.g math-insert \alpha) \n
+                     lyxrc: name of rc_entry (e.g. bind_file) \n
+                     lyxinfo: "version" - used version of LyX \n
+                     package: name of latex package (e.g. listings) \n
+                     textclass: name of textclass (e.g. article) \n
+                     menu: name of lfun used in menu  \n
+                     icon: icon of lfun used in toolbar or direct icon name\n
+                     buffer: "name"|"path"|"class"|"vcs-tree-revision"|
+                              "vcs-revision"|"vcs-author"|"vcs-date"|"vcs-time"
  * \li Sample: command-sequence info-insert buffer path; info-insert buffer name
  * \li Origin: bpeng, 7 Oct 2007
  * \endvar
@@ -440,17 +461,13 @@ void LyXAction::init()
                class you're using has to load the character styles. There are
                a few contained in the Logical Markup module. You can also of
                course create some yourself. \n
-              For dissolving the element see #LFUN_INSET_DISSOLVE.
- * \li Syntax: flex-insert <TYPE:Name>
- * \li Params: TYPE: CharStyle|Custom|Element|Standard \n
-                    Identifies whether this is a Character Style, a
-                    Custom Inset or an XML Element, and which dynamical 
-                    sub-menu this flex inset is in on the LyX menu tree. 
-                    If Standard (currently unused): none of these.
-              Name: This name must be defined either in your layout file
-                    or imported by some module. The definition is \n
-                    InsetLayout <TYPE:Name>
- * \li Sample: flex-insert CharStyle:Code
+               For dissolving the element see #LFUN_INSET_DISSOLVE.
+ * \li Syntax: flex-insert Name
+ * \li Params: Name: This name must be defined either in your layout file
+                     or imported by some module. The definition is
+                     InsetLayout Name or InsetLayout <Flex:Name>. The Flex:
+                     prefix is optional.
+ * \li Sample: flex-insert Code
  * \endvar
  */
                { LFUN_FLEX_INSERT, "flex-insert", Noop, Edit },
@@ -467,41 +484,43 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_SPACE_INSERT
  * \li Action: Inserts one of horizontal space insets.
  * \li Syntax: space-insert <NAME> [<LEN>]
- * \li Params: <NAME>: normal, protected, thin, quad, qquad, enspace, enskip,
-                       negthinspace, hfill, hfill*, dotfill, hrulefill, hspace,
-                       hspace* \n
+ * \li Params: <NAME>: normal, protected, visible, thin, quad, qquad, enspace,
+                       enskip, negthinspace, negmedspace, negthickspace, hfill,
+                       hfill*, dotfill, hrulefill, hspace, hspace* \n
+                       Only in math mode: med and thick.\n
                <LEN>: length for custom spaces (hspace, hspace* for protected)
  * \li Origin: JSpitzm, 20 May 2003, Mar 17 2008
  * \endvar
  */
                { LFUN_SPACE_INSERT, "space-insert", Noop, Edit },
 /*!
- * \var lyx::FuncCode lyx::LFUN_HYPERLINK_INSERT
+ * \var lyx::FuncCode lyx::LFUN_HREF_INSERT
  * \li Action: Inserts hyperlinks into the document (clickable in pdf output).
  * \li Notion: Hyperlink target can be set via selection + hyperlink-insert function.
  * \li Syntax: href-insert [<TARGET>]
  * \li Origin: CFO-G, 21 Nov 1997
  * \endvar
  */
-               { LFUN_HYPERLINK_INSERT, "href-insert", Noop, Edit },
+               { LFUN_HREF_INSERT, "href-insert", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_SPECIALCHAR_INSERT
  * \li Action: Inserts various characters into the document.
  * \li Syntax: specialchar-insert <CHAR>
  * \li Params: <CHAR>: hyphenation, ligature-break, slash, nobreakdash, dots,
-                       end-of-sentence, menu-separator.
+                       end-of-sentence, menu-separator, lyx, tex, latex, latex2e.
  * \li Origin: JSpitzm, 6 Dec 2007
  * \endvar
  */
                { LFUN_SPECIALCHAR_INSERT, "specialchar-insert", Noop, Edit },
 /*!
- * \var lyx::FuncCode lyx::LFUN_TOC_INSERT
- * \li Action: Inserts table of contents.
- * \li Syntax: toc-insert
- * \li Origin: Lgb, 27 May 97
+ * \var lyx::FuncCode lyx::LFUN_SCRIPT_INSERT
+ * \li Action: Inserts a subscript or superscript inset.
+ * \li Syntax: script-insert <TYPE>
+ * \li Params: <TYPE>: subscript|superscript
+ * \li Origin: Georg, 23 Nov 2010
  * \endvar
  */
-               { LFUN_TOC_INSERT, "toc-insert", Noop, Edit },
+               { LFUN_SCRIPT_INSERT, "script-insert", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_APPENDIX
  * \li Action: Start (or remove) Appendix on the given cursor position.
@@ -517,7 +536,7 @@ void LyXAction::init()
  * \li Notion: It automatically takes the word on the cursor position.
  * \li Syntax: index-insert [<TYPE:Name>]
  * \li Params: <TYPE:Name>: name of the index, if multiple indices are defined.
-               with an empty argument, the default index is selected.
+               With an empty argument, the default index is selected.
  * \li Origin: leeming, 3 Aug 2000
  * \endvar
  */
@@ -527,12 +546,40 @@ void LyXAction::init()
  * \li Action: Inserts list of Index entries on a new page.
  * \li Syntax: index-print [<TYPE:Name>]
  * \li Params: <TYPE:Name>: name of the index, if multiple indices are defined.
-               with an empty argument, the default index is selected.
+               With an empty argument, the default index is selected.
  * \li Origin: Lgb, 27 Feb 1997
  * \endvar
  */
                { LFUN_INDEX_PRINT, "index-print", Noop, Edit },
-
+/*!
+ * \var lyx::FuncCode lyx::LFUN_IPA_INSERT
+ * \li Action: Inserts an IPA inset.
+ * \li Syntax: ipa-insert
+ * \li Origin: spitz, 05 Mar 2012
+ * \endvar
+ */
+               { LFUN_IPA_INSERT, "ipa-insert", Noop, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_IN_IPA
+ * \li Action: Only active in IPA inset.
+ * \li Notion: Dummy function which is only active in a IPA inset.
+               It's used to toggle the IPA toolbar if the cursor moves
+               into an IPA inset.
+ * \li Syntax: in-ipa
+ * \li Origin: spitz, 20 May 2012
+ * \endvar
+ */
+               { LFUN_IN_IPA, "in-ipa", Noop, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_IPAMACRO_INSERT
+ * \li Action: Inserts special IPA macros into the document.
+ * \li Syntax: ipamacro-insert <CHAR>
+ * \li Params: <CHAR>: tone-falling, tone-rising, tone-high-rising, tone-low-rising,
+ *                     tone-high-rising-falling, deco bottomtiebar, deco toptiebar.
+ * \li Origin: JSpitzm, 22 Aug 2012
+ * \endvar
+ */
+               { LFUN_IPAMACRO_INSERT, "ipamacro-insert", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_NOMENCL_INSERT
  * \li Action: Inserts Nomenclature entry.
@@ -553,7 +600,7 @@ void LyXAction::init()
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_NOTE_INSERT
- * \li Action: Inserts Note on the current cursor postion,
+ * \li Action: Inserts Note on the current cursor position,
                move selection inside the inset.
  * \li Syntax: note-insert [<TYPE>]
  * \li Params: <TYPE>: <Note|Greyedout|Comment> default: Note
@@ -562,24 +609,14 @@ void LyXAction::init()
                { LFUN_NOTE_INSERT, "note-insert", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_NOTE_NEXT
- * \li Action: Moves the cursor to the begining of next Note inset.
+ * \li Action: Moves the cursor to the beginning of next Note inset.
  * \li Syntax: note-next
  * \endvar
  */
                { LFUN_NOTE_NEXT, "note-next", ReadOnly, Edit },
-/*!
- * \var lyx::FuncCode lyx::LFUN_NOTES_MUTATE
- * \li Action: Changes all Note insets of a particular type (source)
-               to a different type (target) fot the current document.
- * \li Syntax: notes-mutate <SOURCE> <TARGET>
- * \li Params: <SOURCE/TARGET>: Note|Comment|Greyedout
- * \li Origin: sanda, 18 Jun 2008
- * \endvar
- */
-               { LFUN_NOTES_MUTATE, "notes-mutate", Argument, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_PHANTOM_INSERT
- * \li Action: Inserts phantom on the current cursor postion,
+ * \li Action: Inserts phantom on the current cursor position,
                move selection inside the inset.
  * \li Syntax: phantom-insert [<TYPE>]
  * \li Params: <TYPE>: <Phantom|HPhantom|VPhantom> default: Phantom
@@ -596,9 +633,19 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_NEWLINE_INSERT, "newline-insert", Noop, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SEPARATOR_INSERT
+ * \li Action: Inserts an environment separator or latex paragraph break.
+ * \li Syntax: separator-insert [<ARG>]
+ * \li Params: <ARG>: <plain|parbreak|latexpar> default: plain
+ * \li Origin: ef, 2 May 2014
+ * \endvar
+ */
+               { LFUN_SEPARATOR_INSERT, "separator-insert", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_ESCAPE
  * \li Action: Clears the selection. If no text is selected call #LFUN_FINISHED_FORWARD.
+               Inside math mode jumps out of the math inset.
  * \li Syntax: escape
  * \li Origin: Lgb, 17 May 2001
  * \endvar
@@ -762,7 +809,7 @@ void LyXAction::init()
                { LFUN_CHAR_LEFT, "char-left", ReadOnly | NoUpdate, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_CHAR_LEFT_SELECT
- * \li Action: Moves the cursor one position "to the left", adding 
+ * \li Action: Moves the cursor one position "to the left", adding
                traversed position to the selection.
  * \li Notion: See also #LFUN_CHAR_LEFT for exact details of the movement.
  * \li Syntax: char-left-select
@@ -807,7 +854,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_BACKWARD_SELECT
  * \li Action: Moves the cursor to the logically previous beginning of a word,
-                          adding the logically traversed text to the selection.
+               adding the logically traversed text to the selection.
  * \li Notion: See also #LFUN_WORD_BACKWARD.
  * \li Syntax: word-backward-select
  * \endvar
@@ -815,7 +862,7 @@ void LyXAction::init()
                { LFUN_WORD_BACKWARD_SELECT, "word-backward-select", ReadOnly | SingleParUpdate, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_DELETE_BACKWARD
- * \li Action: Deletes characters to the begining of the word (usually the "C+BackSpace" key).
+ * \li Action: Deletes characters to the beginning of the word (usually the "C+BackSpace" key).
  * \li Syntax: word-delete-backward
  * \endvar
  */
@@ -847,11 +894,11 @@ void LyXAction::init()
                { LFUN_WORD_FIND_BACKWARD, "word-find-backward", ReadOnly, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_FIND
- * \li Action: Search for next occurence of a string.
+ * \li Action: Search for next occurrence of a string.
  * \li Syntax: word-find [<DATA>]
  * \li Params: <DATA>: data encoded from Find dialog (see #lyx::find2string()).
                        If no parameter is given, search with last find-dialog
-                      data is used for search (i.e. find-next).
+                       data is used for search (i.e. find-next).
  * \li Origin: Andre, Jan 7 2004
  * \endvar
  */
@@ -861,16 +908,16 @@ void LyXAction::init()
  * \li Action: Replace a string in the document.
  * \li Syntax: word-replace [<DATA>]
  * \li Params: <DATA>: data is of the form
-                       "<search> \n
-                        <replace> \n
-                        <casesensitive> <matchword> <all> <forward>"
+                       "<replace> \n
+                        <search> \n
+                        <casesensitive> <matchword> <all> <forward> <findnext>"
  * \li Origin: Andre, Jan 7 2004
  * \endvar
  */
                { LFUN_WORD_REPLACE, "word-replace", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_FINDADV
- * \li Action: Search for next occurence of a pattern.
+ * \li Action: Search for next occurrence of a pattern.
  * \li Syntax: word-findadv [<DATA>]
  * \li Params: <DATA>: data encoded from FindAdv dialog (see #lyx::findadv2string()).
                        If no parameter is given, search with last find-dialog
@@ -878,8 +925,9 @@ void LyXAction::init()
  * \li Origin: Tommaso, Nov 15 2007
  * \endvar
  */
-               { LFUN_WORD_FINDADV, "word-findadv", ReadOnly, Edit },
-/*! \var lyx::FuncCode lyx::LFUN_WORD_FORWARD
+               { LFUN_WORD_FINDADV, "word-findadv", ReadOnly | NoBuffer, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_WORD_FORWARD
  * \li Action: Moves the cursor to the logically next beginning of a word.
  * \li Notion: This is not the action which should be bound to the arrow keys,
                because forward may be left or right, depending on the language.
@@ -891,8 +939,8 @@ void LyXAction::init()
                { LFUN_WORD_FORWARD, "word-forward", ReadOnly | NoUpdate, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_FORWARD_SELECT
- * \li Action: Moves the cursor to the logically next beginning of a word, 
-                          adding the logically traversed text to the selection.
+ * \li Action: Moves the cursor to the logically next beginning of a word,
+               adding the logically traversed text to the selection.
  * \li Notion: See also #LFUN_WORD_FORWARD.
  * \li Syntax: word-forward-select
  * \endvar
@@ -902,12 +950,12 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_WORD_LEFT
  * \li Action: Moves the cursor to the next beginning of a word "on the left".
  * \li Notion: This is the action which should be taken when the (e.g., ctrl-)
-                          "left" key is pressed. Generally, it moves the cursor to the 
-                          next beginning of a word on the left. However, in Bidi text this 
-                          become slightly more complicated, and there are different modes
-                          of cursor movement. In "visual mode", this moves left, plain and
-                          simple. In "logical mode", movement is logically forward in RTL
-                          paragraphs, and logically backwards in LTR paragraphs.
+               "left" key is pressed. Generally, it moves the cursor to the
+               next beginning of a word on the left. However, in Bidi text this
+               become slightly more complicated, and there are different modes
+               of cursor movement. In "visual mode", this moves left, plain and
+               simple. In "logical mode", movement is logically forward in RTL
+               paragraphs, and logically backwards in LTR paragraphs.
  * \li Syntax: word-left
  * \li Origin: dov, 28 Oct 2007
  * \endvar
@@ -916,7 +964,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_LEFT_SELECT
  * \li Action: Moves the cursor to the next beginning of a word "on the left",
-                          adding *logically* traversed text to the selection.
+               adding *logically* traversed text to the selection.
  * \li Notion: See also #LFUN_WORD_LEFT for exact details of the movement.
  * \li Syntax: word-left-select
  * \li Origin: dov, 28 Oct 2007
@@ -927,13 +975,13 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_WORD_RIGHT
  * \li Action: Moves the cursor to the next beginning of a word "on the right".
  * \li Notion: This is the action which should be taken when the (e.g., ctrl-)
-                          "right" key is pressed. Generally, it moves the cursor to the 
-                          next beginning of a word on the right. However, in Bidi text 
-                          this become slightly more complicated, and there are different
-                          modes of cursor movement. In "visual mode", this moves right,
-                          plain and simple. In "logical mode", movement is logically 
-                          forward in LTR paragraphs, and logically backwards in RTL 
-                          paragraphs.
+               "right" key is pressed. Generally, it moves the cursor to the
+               next beginning of a word on the right. However, in Bidi text
+               this become slightly more complicated, and there are different
+               modes of cursor movement. In "visual mode", this moves right,
+               plain and simple. In "logical mode", movement is logically
+               forward in LTR paragraphs, and logically backwards in RTL
+               paragraphs.
  * \li Syntax: word-right
  * \li Origin: dov, 28 Oct 2007
  * \endvar
@@ -942,7 +990,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_RIGHT_SELECT
  * \li Action: Moves the cursor to the next beginning of a word "on the right",
-                          adding *logically* traversed text to the selection.
+               adding *logically* traversed text to the selection.
  * \li Notion: See also #LFUN_WORD_RIGHT for exact details of the movement.
  * \li Syntax: word-right-select
  * \li Origin: dov, 28 Oct 2007
@@ -960,27 +1008,82 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_CAPITALIZE
  * \li Action: Capitalizes the words in the selection (i.e. the first letters)
-               or the letter on the cursor position.
- * \li Syntax: word-capitalize
+               or the first letter of word at cursor position.
+ * \li Syntax: word-capitalize [<SEL_TYPE>]
+ * \li Params: <SEL_TYPE>: if this is equal to "partial", then the
+ *             default word starts at cursor position (emacs-style).
+ *             Otherwise, the whole word is considered.
  * \endvar
  */
                { LFUN_WORD_CAPITALIZE, "word-capitalize", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_UPCASE
- * \li Action: Change the words in the selection or from the cursor position
-               to the end of word to the upper case.
- * \li Syntax: word-upcase
+ * \li Action: Change the words in the selection or word at cursor position
+               to upper case.
+ * \li Syntax: word-upcase [<SEL_TYPE>]
+ * \li Params: <SEL_TYPE>: if this is equal to "partial", then the
+ *             default word starts at cursor position (emacs-style).
+ *             Otherwise, the whole word is considered.
  * \endvar
  */
                { LFUN_WORD_UPCASE, "word-upcase", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_LOWCASE
- * \li Action: Change the words in the selection or from the cursor position
-               to the end of word to the lower case.
- * \li Syntax: word-lowcase
+ * \li Action: Change the words in the selection or word at cursor position
+               to lower case.
+ * \li Syntax: word-lowcase [<SEL_TYPE>]
+ * \li Params: <SEL_TYPE>: if this is equal to "partial", then the
+ *             default word starts at cursor position (emacs-style).
+ *             Otherwise, the whole word is considered.
  * \endvar
  */
                { LFUN_WORD_LOWCASE, "word-lowcase", Noop, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SPELLING_ADD
+ * \li Action: Add the word under the cursor to the respective
+ *             spell checker dictionary.
+ *             The default for the language is retrieved from the cursor position.
+ * \li Syntax: spelling-add [<STRING>] [<LANG>]
+ * \li Params: <WORD>: word to add
+               <LANG>: language name (see file languages)
+ * \li Origin: JSpitzm, 18 Jan 2010
+ * \endvar
+ */
+               { LFUN_SPELLING_ADD, "spelling-add", ReadOnly, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SPELLING_IGNORE
+ * \li Action: Let the spell checker ignore the word under the cursor
+ *             in the current session for the given language.
+ *             The default for the language is retrieved from the cursor position.
+ * \li Syntax: spelling-ignore [<WORD>] [<LANG>]
+ * \li Params: <WORD>: word to ignore
+               <LANG>: language name (see file languages)
+ * \li Origin: JSpitzm, 18 Jan 2010
+ * \endvar
+ */
+               { LFUN_SPELLING_IGNORE, "spelling-ignore", ReadOnly, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SPELLING_REMOVE
+ * \li Action: Remove the word under the cursor from the respective
+ *             spell checker dictionary.
+ *             The default for the language is retrieved from the cursor position.
+ * \li Syntax: spelling-remove [<STRING>] [<LANG>]
+ * \li Params: <WORD>: word to remove
+ *             <LANG>: language name (see file languages)
+ * \li Origin: SWitt, 28 July 2010
+ * \endvar
+ */
+               { LFUN_SPELLING_REMOVE, "spelling-remove", ReadOnly, Edit },
+
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SPELLING_CONTINUOUSLY
+ * \li Action: Toggle continuous spell checking.
+ * \li Syntax: spelling-continuously
+ * \li Origin: vfr, 24 March 2013
+ * \endvar
+ */
+               { LFUN_SPELLING_CONTINUOUSLY, "spelling-continuously", ReadOnly, Edit },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_THESAURUS_ENTRY
  * \li Action: Look up thesaurus entries with respect to the word under the cursor.
@@ -1024,50 +1127,73 @@ void LyXAction::init()
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_BEGIN
- * \li Action: Move the cursor to the beginning of the current inset 
-               if it is not already there, or at the beginning of the 
+ * \li Action: Move the cursor to the beginning of the current inset
+               if it is not already there, or at the beginning of the
                enclosing inset otherwise
  * \li Syntax: inset-begin
- * \li Origin: JMarc, 2009/03/16
+ * \li Origin: lasgouttes, 16 Mar 2009
  * \endvar
  */
                { LFUN_INSET_BEGIN, "inset-begin", ReadOnly, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_BEGIN_SELECT
- * \li Action: Move the cursor to the beginning of the current inset 
-               if it is not already there, or at the beginning of the 
+ * \li Action: Move the cursor to the beginning of the current inset
+               if it is not already there, or at the beginning of the
                enclosing inset otherwise (adding the
                traversed text to the selection).
  * \li Syntax: inset-begin-select
- * \li Origin: JMarc, 2009/03/16
+ * \li Origin: lasgouttes, 16 Mar 2009
  * \endvar
  */
                { LFUN_INSET_BEGIN_SELECT, "inset-begin-select", ReadOnly, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_END
- * \li Action: Move the cursor to the end of the current inset 
-               if it is not already there, or at the end of the 
+ * \li Action: Move the cursor to the end of the current inset
+               if it is not already there, or at the end of the
                enclosing inset otherwise
  * \li Syntax: inset-end
- * \li Origin: JMarc, 2009/03/16
+ * \li Origin: lasgouttes, 16 Mar 2009
  * \endvar
  */
                { LFUN_INSET_END, "inset-end", ReadOnly, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_END_SELECT
- * \li Action: Move the cursor to the end of the current inset 
-               if it is not already there, or at the end of the 
+ * \li Action: Move the cursor to the end of the current inset
+               if it is not already there, or at the end of the
                enclosing inset otherwise (adding the
                traversed text to the selection).
  * \li Syntax: inset-end-select
- * \li Origin: JMarc, 2009/03/16
+ * \li Origin: lasgouttes, 16 Mar 2009
  * \endvar
  */
                { LFUN_INSET_END_SELECT, "inset-end-select", ReadOnly, Edit },
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_INSET_SELECT_ALL
+ * \li Action: Select all contents of an inset.
+ * \li Notion: There are 3 successive levels: select current cell,
+ *   select all cells of inset, select the inset from outside
+ *   (in the enclosing inset).
+ * \li Syntax: inset-select-all
+ * \li Origin: vfr, 22 Aug 2009; lasgouttes 1 Nov 2014
+ * \endvar
+ */
+               { LFUN_INSET_SELECT_ALL, "inset-select-all", ReadOnly, Edit },
+
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SECTION_SELECT
+ * \li Action: Select the whole section.
+ * \li Notion: The cursor should be in a section heading
+               before calling this lfun.
+ * \li Syntax: section-select
+ * \li Origin: vfr, 05 May 2009
+ * \endvar
+ */
+               { LFUN_SECTION_SELECT, "section-select", ReadOnly, Edit },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_LINE_BEGIN
- * \li Action: Move the cursor to the begining of the (screen) line.
+ * \li Action: Move the cursor to the beginning of the (screen) line.
  * \li Syntax: line-begin
  * \endvar
  */
@@ -1096,16 +1222,16 @@ void LyXAction::init()
  */
                { LFUN_LINE_END_SELECT, "line-end-select", ReadOnly | SingleParUpdate, Edit },
 /*!
- * \var lyx::FuncCode lyx::LFUN_LINE_DELETE
+ * \var lyx::FuncCode lyx::LFUN_LINE_DELETE_FORWARD
  * \li Action: Deletes the letters to the end of the (screen) line or
                deletes the selection.
  * \li Syntax: line-delete-forward
  * \endvar
  */
-               { LFUN_LINE_DELETE, "line-delete-forward", Noop, Edit }, // there is no line-delete-backward
+               { LFUN_LINE_DELETE_FORWARD, "line-delete-forward", Noop, Edit }, // there is no line-delete-backward
 /*!
  * \var lyx::FuncCode lyx::LFUN_COPY
- * \li Action: Copies to the clipboard the last edit.
+ * \li Action: Copies the current selection to the clipboard.
  * \li Syntax: copy
  * \endvar
  */
@@ -1119,24 +1245,32 @@ void LyXAction::init()
                { LFUN_CUT, "cut", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_PASTE
- * \li Action: Pastes material from the active clipboard.
- * \li Syntax: paste [<TYPE>]
- * \li Params: <TYPE>: emf|pdf|png|jpeg|linkback|wmf
+ * \li Action: Pastes material (text or picture) from the active clipboard.
+ * \li Syntax: paste [<TYPE>|<NUM>]
+ * \li Params: <TYPE>: emf|pdf|png|jpeg|linkback|wmf|latex|html \n
+               <NUM>: number of the selection in the internal clipboard stack to be pasted.
  * \endvar
  */
                { LFUN_PASTE, "paste", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_CLIPBOARD_PASTE
- * \li Action: Pastes text from the active clipboard.
+ * \li Action: Pastes text from the active clipboard (retains formatting if the
+               clipboard contains formatted text). Pastes plain text if plain text is
+               on the clipboard, but tries to interpret it in special ways for certain
+               insets, e.g. converting csv data to rows and columns if the paste happens
+               in a tabular inset.
+ * \li Notion: Historically, LFUN_CLIPBOARD_PASTE was introduced as a counterpart of
+               LFUN_PRIMARY_SELECTION_PASTE: It behaved exactly the same, but the source
+               is the clipboard, not the selection.
  * \li Syntax: clipboard-paste [<ARG>]
  * \li Params: <ARG>: "paragraph" will cause pasting as one paragraph, i.e. "Join lines".
- * \li Origin: baum, 10 Jul 2006
+ * \li Origin: Georg, 10 Jul 2006
  * \endvar
  */
                { LFUN_CLIPBOARD_PASTE, "clipboard-paste", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_PRIMARY_SELECTION_PASTE
- * \li Action: Pastes the currently text selected text.
+ * \li Action: Pastes the currently selected text.
  * \li Notion: Primary selection mechanism is linux-only thing.
  * \li Syntax: primary-selection-paste [<ARG>]
  * \li Params: <ARG>: "paragraph" will cause pasting as one paragraph, i.e. "Join lines".
@@ -1145,25 +1279,40 @@ void LyXAction::init()
                { LFUN_PRIMARY_SELECTION_PASTE, "primary-selection-paste", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_SELECTION_PASTE
- * \li Action: Pastes the text in permanent selection.
+ * \li Action: Pastes the internal selection text in permanent selection.
+ * \li Notion: Created in order to have middle mouse button pasting correct (bound to
+               command-alternatives selection-paste ; primary-selection-paste paragraph).
  * \li Syntax: selection-paste
+ * \li Origin: lasgouttes, 14 Jan 2009
  * \endvar
  */
                { LFUN_SELECTION_PASTE, "selection-paste", Noop, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_CLIPBOARD_PASTE_SIMPLE
+ * \li Action: Pastes plain text from the active clipboard even if formatted
+               LyX content is in the clipboard. Pastes plain text if plain text
+               is on the clipboard, without trying to interpret it in special
+               ways for certain insets, e.g. converting csv data to rows and
+               columns if the paste happens in a tabular inset.
+ * \li Syntax: clipboard-paste-simple [<ARG>]
+ * \li Params: <ARG>: "paragraph" will cause pasting as one paragraph, i.e. "Join lines".
+ * \endvar
+ */
+               { LFUN_CLIPBOARD_PASTE_SIMPLE, "clipboard-paste-simple", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_UNDO
  * \li Action: Undoes the last edit.
  * \li Syntax: undo
  * \endvar
  */
-               { LFUN_UNDO, "undo", Noop, Edit },
+               { LFUN_UNDO, "undo", ReadOnly, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_REDO
  * \li Action: Redoes the last thing undone.
  * \li Syntax: redo
  * \endvar
  */
-               { LFUN_REDO, "redo", Noop, Edit },
+               { LFUN_REDO, "redo", ReadOnly, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_REPEAT
  * \li Action: Repeat the given command.
@@ -1228,21 +1377,21 @@ void LyXAction::init()
  */
                { LFUN_FONT_UNDERLINE, "font-underline", Noop, Layout },
 /*!
- * \var lyx::FuncCode lyx::LFUN_FONT_UULINE
+ * \var lyx::FuncCode lyx::LFUN_FONT_UNDERUNDERLINE
  * \li Action: Toggles double underline in the font (selection-wise).
  * \li Syntax: font-underunderline
  * \li Origin: sanda, 5 May 2009
  * \endvar
  */
-               { LFUN_FONT_UULINE, "font-underunderline", Noop, Layout },
+               { LFUN_FONT_UNDERUNDERLINE, "font-underunderline", Noop, Layout },
 /*!
- * \var lyx::FuncCode lyx::LFUN_FONT_UWAVE
+ * \var lyx::FuncCode lyx::LFUN_FONT_UNDERWAVE
  * \li Action: Toggles wavy underline in the font (selection-wise).
  * \li Syntax: font-underwave
  * \li Origin: sanda, 5 May 2009
  * \endvar
  */
-               { LFUN_FONT_UWAVE, "font-underwave", Noop, Layout },
+               { LFUN_FONT_UNDERWAVE, "font-underwave", Noop, Layout },
 /*!
  * \var lyx::FuncCode lyx::LFUN_FONT_STRIKEOUT
  * \li Action: Toggles strikeout (strike-through) in the font (selection-wise).
@@ -1315,7 +1464,7 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_TEXTSTYLE_APPLY
  * \li Action: Toggle user-defined (=last-time used) text style.
  * \li Notion: This style is set via #LFUN_TEXTSTYLE_UPDATE, which is
-               automatically trigerred when using Text Style dialog.
+               automatically triggered when using Text Style dialog.
  * \li Syntax: textstyle-apply
  * \li Origin: leeming, 12 Mar 2003
  * \endvar
@@ -1327,9 +1476,9 @@ void LyXAction::init()
  * \li Syntax: textstyle-update <FONT_INFO>
  * \li Params: <FONT_INFO>: specifies font atributes, e.g. family, series, shape,
                             size, emph, noun, underbar, number, color, language,
-                           toggleall.\n
-                           Use lyx -dbg action for exact syntax of text-style
-                           dialog parameters.
+                            toggleall.\n
+                            Use lyx -dbg action for exact syntax of text-style
+                            dialog parameters.
  * \li Origin: leeming, 12 Mar 2003
  * \endvar
  */
@@ -1365,7 +1514,7 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_BIBTEX_DATABASE_ADD
  * \li Action: Adds database, which will be used for bibtex citations.
  * \li Notion: Databases are added to the first BibTeX inset
-               (Inset->List/TOC->BibTeX bibliography) found from the cursor postion.
+               (Inset->List/TOC->BibTeX bibliography) found from the cursor position.
  * \li Syntax: bibtex-database-add <DATABASE-NAME>
  * \li Origin: Ale, 30 May 1997
  * \endvar
@@ -1375,7 +1524,7 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_BIBTEX_DATABASE_DEL
  * \li Action: Adds database, which will be used for bibtex citations.
  * \li Notion: Databases are deleted from the first BibTeX inset
-               (Inset->List/TOC->BibTeX bibliography) found from the cursor postion.
+               (Inset->List/TOC->BibTeX bibliography) found from the cursor position.
  * \li Syntax: bibtex-database-del <DATABASE-NAME>
  * \li Origin: Ale, 30 May 1997
  * \endvar
@@ -1422,7 +1571,7 @@ void LyXAction::init()
  * \li Origin: rgh, 25 August 2007
  * \endvar
  */
-               { LFUN_LAYOUT_MODULES_CLEAR, "layout-modules-clear", Noop, Layout },
+               { LFUN_LAYOUT_MODULES_CLEAR, "layout-modules-clear", NoInternal, Layout },
 /*!
  * \var lyx::FuncCode lyx::LFUN_LAYOUT_MODULE_ADD
  * \li Action: Adds a module.
@@ -1432,7 +1581,7 @@ void LyXAction::init()
  * \li Origin: rgh, 25 August 2007
  * \endvar
  */
-               { LFUN_LAYOUT_MODULE_ADD, "layout-module-add", Noop, Layout },
+               { LFUN_LAYOUT_MODULE_ADD, "layout-module-add", NoInternal, Layout },
 /*!
  * \var lyx::FuncCode lyx::LFUN_LAYOUT_RELOAD
  * \li Action: Reloads layout information.
@@ -1444,7 +1593,18 @@ void LyXAction::init()
  * \li Origin: rgh, 3 September 2007
  * \endvar
  */
-               { LFUN_LAYOUT_RELOAD, "layout-reload", Noop, Layout },
+               { LFUN_LAYOUT_RELOAD, "layout-reload", NoInternal, Layout },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BUFFER_VIEW_CACHE
+ * \li Action: Opens the file that was created from last preview of this buffer.
+ * \li Notion: This LFUN is called by the "Show Output Anyway" button in the LaTeX
+ *             Errors dialog. It can also be called by the user, which is useful
+ *             if the document takes a long time to compile, and you just
+ *             want to see the last previewed version.
+ * \li Syntax: buffer-view-cache
+ * \endvar
+ */
+               { LFUN_BUFFER_VIEW_CACHE, "buffer-view-cache", ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_TEXTCLASS_APPLY
  * \li Action: Sets the text class for the current buffer.
@@ -1453,7 +1613,7 @@ void LyXAction::init()
                    the filename, minus the ".layout" extension.
  * \endvar
  */
-               { LFUN_TEXTCLASS_APPLY, "textclass-apply", Noop, Layout },
+               { LFUN_TEXTCLASS_APPLY, "textclass-apply", NoInternal, Layout },
 /*!
  * \var lyx::FuncCode lyx::LFUN_TEXTCLASS_LOAD
  * \li Action: Loads information for a textclass from disk.
@@ -1462,7 +1622,7 @@ void LyXAction::init()
                    the filename, minus the ".layout" extension.
  * \endvar
  */
-               { LFUN_TEXTCLASS_LOAD, "textclass-load", Noop, Layout },
+               { LFUN_TEXTCLASS_LOAD, "textclass-load", NoInternal, Layout },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_MARK_OFF
@@ -1487,7 +1647,7 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_MARK_TOGGLE, "mark-toggle", ReadOnly, Edit },
-               
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_MATH_DELIM
  * \li Action: Inserts math delimiters (e.g. parentheses, brackets) enclosing expression.
@@ -1527,6 +1687,14 @@ void LyXAction::init()
  * \li Action: Inserts math objects and symbols.
  * \li Syntax: math-insert <ARG>
  * \li Params: <ARG>: Symbol or LaTeX code to be inserted.
+ * \li Notion: When <ARG> is a _single_ math inset with more than one cell
+               (such as "x_y^z" or "\frac{x}{y}"), the content of cell(0) is
+               replaced by the current selection (only works if the selection
+               is in mathed). As an example, if "abc" is selected in mathed,
+               "math-insert \frac{x}{y}" replaces "abc" with "\frac{abc}{y}",
+               and "math-insert x_y^z" replaces "abc" with "abc_y^z".
+               If nothing is selected (or the selection is not in mathed),
+               math-insert works as expected.
  * \endvar
  */
                { LFUN_MATH_INSERT, "math-insert", Noop, Math },
@@ -1540,7 +1708,7 @@ void LyXAction::init()
                { LFUN_MATH_SUBSCRIPT, "math-subscript", Noop, Math },
 /*!
  * \var lyx::FuncCode lyx::LFUN_MATH_SUPERSCRIPT
- * \li Action: Enters subscript expression in math expression.
+ * \li Action: Enters superscript expression in math expression.
  * \li Syntax: math-superscript
  * \li Origin: vermeer, 12 Dec 2001
  * \endvar
@@ -1561,7 +1729,7 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO
  * \li Action: Inserts a math macro definition at the cursor position in the text.
  * \li Syntax: math-macro <NAME> [<NARGS>] [def]
- * \li Params: <NAME>: The name of the macro, e.g. "mymacro".
+ * \li Params: <NAME>: The name of the macro, e.g. "mymacro".\n
                <NARGS>: The number of parameters of the macro. Default is 0.
                "def": Has no effect anymore, just for compatibility with former LyX versions.
  * \li Origin: ale, 10 May 1997;  sts, 21 Dec 2007
@@ -1586,9 +1754,9 @@ void LyXAction::init()
  * \li Params: <TYPE>: negative spaces: !|negthinspace|negmedspace|negthickspace \n
                        positive spaces: ,|thinspace|:|medspace|;|thickspace|enskip|quad|qquad \n
                        custom space: hspace \n
-                       "," used by default.
+                       "," used by default.\n
                        Note that ! is equivalent to negthinspace, , = thinspace,
-                       : = medspace, and ; = thickspace.
+                       : = medspace, and ; = thickspace.\n
                <LEN>: length for custom spaces (hspace)
  * \li Origin: Andre, 25 Jul 2001; sanda, 16 Jun 2008
  * \endvar
@@ -1599,19 +1767,32 @@ void LyXAction::init()
  * \li Action: Inserts a matrix.
  * \li Syntax: math-matrix <COLS> <ROWS> [<ALIGN>]
  * \li Params: <ALIGN>: Alignment is a word composed of the vertical alignment
-                        (b, c or t) (i.e. 1 char) and the horizontal alignments 
-                       (l, c or r) (i.e. <COL> chars).
+                        (b, c or t) (i.e. 1 char) and the horizontal alignments
+                        (l, c or r) (i.e. <COL> chars).
  * \li Sample: math-matrix 3 3 bccc
  * \endvar
  */
                { LFUN_MATH_MATRIX, "math-matrix", Noop, Math },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_MATH_AMS_MATRIX
+ * \li Action: Inserts an extended matrix as provided by the amsmath package.
+ * \li Syntax: math-matrix <COLS> <ROWS> [<DECORATION>]
+ * \li Params: <DECORATION>: Decoration determines the LaTeX name of the matrix
+                             that should be created. Possible values include
+                             pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix and
+                             matrix. The default is 'matrix'.
+ * \li Sample: math-ams-matrix 3 3 bmatrix
+ * \endvar
+ */
+               { LFUN_MATH_AMS_MATRIX, "math-ams-matrix", Noop, Math },
 /*!
  * \var lyx::FuncCode lyx::LFUN_MATH_MODE
  * \li Action: In text mode enters math mode (i.e. puts math insets on the current
                cursor position), in math mode enters text mode inside math expression.
  * \li Notion: If there is some selected text, it puts the text inside created math box.
- * \li Syntax: math-mode [<ARG>]
- * \li Params: <ARG>: eventual argument (LaTeX code) is passed to #LFUN_MATH_INSERT .
+ * \li Syntax: math-mode [on|<ARG>]
+ * \li Params: <ARG>: eventual argument (LaTeX code) is passed to #LFUN_MATH_INSERT .\n
+                "on": allow only entering of math mode from text mode.
  * \li Origin: Alejandro, 4 Jun 1996
  * \endvar
  */
@@ -1654,7 +1835,7 @@ void LyXAction::init()
  * \li Notion: Selection can be used to determine the input for the external program.
  * \li Syntax: math-extern <LANG> [<COMMAND>]
  * \li Params: <LANG>: octave|maxima|maple|mathematica|script \n
-                       where "script" stands fot the external script (normalized
+                       where "script" stands for the external script (normalized
                        expression will be passed)
  * \li Origin: Andre, 24 Apr 2001
  * \li Sample: math-extern maple simplify
@@ -1667,7 +1848,7 @@ void LyXAction::init()
  * \li Notion: Provides an interface to the LaTeX math mode font size commands.
  * \li Syntax: math-size <STYLE>
  * \li Params: <STYLE>: \displaystyle|\textstyle|\scriptstyle|\scriptscriptstyle
- * \li Origin: Alejandro, 15 Aug 1996; ps, 14 Jun 2008
+ * \li Origin: Alejandro, 15 Aug 1996; sanda, 14 Jun 2008
  * \endvar
  */
                { LFUN_MATH_SIZE, "math-size", Noop, Math },
@@ -1675,9 +1856,8 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_MATH_FONT_STYLE
  * \li Action: Changes the text style used in math.
  * \li Syntax: math-font-style <STYLE>
- * \li Params: <STYLE>: mathnormal|mathcal|mathfrak|mathrm|mathsf|mathbf
-               |textnormal|textrm|textsf|texttt|textbf|textmd|textit
-               |textsc|textsl|textup
+ * \li Params: <STYLE>: mathnormal|mathcal|mathfrak|mathrm|mathsf|mathbf|textnormal\n
+               |textrm|textsf|texttt|textbf|textmd|textit|textsc|textsl|textup
  * \li Origin: vfr, 9 jan 2009
  * \endvar
  */
@@ -1825,6 +2005,8 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_MOVE_UP
  * \li Action: Moves the current paragraph upwards in the document.
+ * \li Notion: Movement through the document will possibly break the paragraph-depth
+               (e.g. itemize structure).
  * \li Syntax: paragraph-move-up
  * \li Origin: Edwin, 8 Apr 2006
  * \endvar
@@ -1833,7 +2015,7 @@ void LyXAction::init()
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_UP
- * \li Action: Move the cursor to the next paragraph (or begining of the current one)
+ * \li Action: Move the cursor to the next paragraph (or beginning of the current one)
                in upward direction.
  * \li Syntax: paragraph-up
  * \li Origin: Asger, 1 Oct 1996
@@ -1843,7 +2025,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_UP_SELECT
  * \li Action: Move the cursor and select the text to the next paragraph (or
-               begining of the current one) in upward direction.
+               beginning of the current one) in upward direction.
  * \li Syntax: paragraph-up-select
  * \li Origin: Asger, 1 Oct 1996
  * \endvar
@@ -1851,7 +2033,7 @@ void LyXAction::init()
                { LFUN_PARAGRAPH_UP_SELECT, "paragraph-up-select", ReadOnly, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_DOWN
- * \li Action: Move the cursor to the next paragraph (or begining of the current one)
+ * \li Action: Move the cursor to the next paragraph (or beginning of the current one)
                in downward direction.
  * \li Syntax: paragraph-down
  * \li Origin: Asger, 1 Oct 1996
@@ -1861,7 +2043,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_DOWN_SELECT
  * \li Action: Move the cursor and select the text to the next paragraph (or
-               begining of the current one) in downward direction.
+               beginning of the current one) in downward direction.
  * \li Syntax: paragraph-down-select
  * \li Origin: Asger, 1 Oct 1996
  * \endvar
@@ -1879,25 +2061,18 @@ void LyXAction::init()
  * \li Origin: Dekel, 26 Aug 2000
  * \endvar
  */
-               { LFUN_PARAGRAPH_GOTO, "paragraph-goto", ReadOnly, Edit },
-/*!
- * \var lyx::FuncCode lyx::LFUN_BREAK_PARAGRAPH
- * \li Action: Breaks the current paragraph at the current location.
- * \li Syntax: break-paragraph
- * \endvar
- */
-               { LFUN_PARAGRAPH_SPACING, "paragraph-spacing", Noop, Edit },
+               { LFUN_PARAGRAPH_GOTO, "paragraph-goto", ReadOnly | NoInternal, Edit },
 /*!
- * \var lyx::FuncCode lyx::LFUN_BREAK_PARAGRAPH
+ * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_BREAK
  * \li Action: Breaks the current paragraph at the current location.
  * \li Notion: Removes the selection.
- * \li Syntax: break-paragraph [<LAYOUT>]
+ * \li Syntax: paragraph-break [<LAYOUT>]
  * \li Params: <LAYOUT>: "inverse" - decreases depth by one (or change layout
                          to default layout) when the cursor is at the end of
                          the line.
  * \endvar
  */
-               { LFUN_BREAK_PARAGRAPH, "break-paragraph", Noop, Edit },
+               { LFUN_PARAGRAPH_BREAK, "paragraph-break", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_PARAMS
  * \li Action: Change paragraph settings.
@@ -1905,10 +2080,10 @@ void LyXAction::init()
                This function only modifies, and does not override, existing settings.
                Note that the "leftindent" indent setting is deprecated.
  * \li Syntax: paragraph-params [<INDENT>] [<SPACING>] [<ALIGN>] [<OTHERS>]
- * \li Params: <INDENT>:  \\noindent|\\indent|\\indent-toggle|\\leftindent LENGTH\n
-               <SPACING>: \\paragraph_spacing default|single|onehalf|double|other\n
-               <ALIGN>:   \\align block|left|right|center|default\n
-               <OTHERS>:  \\labelwidthstring WIDTH|\\start_of_appendix\n
+ * \li Params: <INDENT>:  \noindent|\indent|\indent-toggle|\leftindent LENGTH\n
+               <SPACING>: \paragraph_spacing default|single|onehalf|double|other SIZE \n
+               <ALIGN>:   \align block|left|right|center|default\n
+               <OTHERS>:  \labelwidthstring WIDTH|\start_of_appendix
  * \li Origin: rgh, Aug 15 2007
  * \endvar
  */
@@ -1927,7 +2102,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_UPDATE
  * \li Action: Updates the values inside the paragraph dialog from the paragraph.
- * \li Notion: This is internal LFUN, not to be used by users. Called internally
+ * \li Notion: This is an internal LFUN, not to be used by users. Called internally
                by #LFUN_DIALOG_UPDATE.
  * \li Origin: leeming, 13 Mar 2003
  * \endvar
@@ -1976,6 +2151,7 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_OUTLINE_OUT, "outline-out", Noop, Edit },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_EDIT
  * \li Action: Edit the inset at cursor with an external application,
@@ -1986,41 +2162,20 @@ void LyXAction::init()
  * \li Origin: JSpitzm, 27 Apr 2006
  * \endvar
  */
-               { LFUN_INSET_EDIT, "inset-edit", ReadOnly, Edit },
+               { LFUN_INSET_EDIT, "inset-edit", ReadOnly | AtPoint, Edit },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_TABULAR_INSERT
  * \li Action: Inserts table into the document.
+ * \li Notion: See #LFUN_TABULAR_FEATURE for some more details
+               about tabular modifications.
  * \li Syntax: tabular-insert [<ROWS> <COLUMNS>]
  * \li Params: In case no arguments are given show insert dialog.
  * \li Origin: Jug, 12 Apr 2000
  * \endvar
  */
                { LFUN_TABULAR_INSERT, "tabular-insert", Noop, Edit },
-/*!
- * \var lyx::FuncCode lyx::LFUN_TABULAR_FEATURE
- * \li Action: Sets various features to the table/cell on the current cursor position.
- * \li Notion: Various math-environment features are handled here as well, e.g.
-               add-vline-left/right for the Grid/Array environment
- * \li Syntax: tabular-feature <FEATURE> [<ARG>]
- * \li Params: <FEATURE>: append-row|append-column|delete-row|delete-column|copy-row|copy-column|
-                       toggle-line-top|toggle-line-bottom|toggle-line-left|toggle-line-right|
-                       align-left|align-right|align-center|align-block|valign-top|valign-bottom|
-                       valign-middle|m-align-left|m-align-right|m-align-center|m-valign-top|
-                       m-valign-bottom|m-valign-middle|multicolumn|set-all-lines|unset-all-lines|
-                       set-longtabular|unset-longtabular|set-pwidth|set-mpwidth|
-                       set-rotate-tabular|unset-rotate-tabular|toggle-rotate-tabular|
-                       set-rotate-cell|unset-rotate-cell|toggle-rotate-cell|set-usebox|set-lthead|
-                       unset-lthead|set-ltfirsthead|unset-ltfirsthead|set-ltfoot|unset-ltfoot|
-                       set-ltlastfoot|unset-ltlastfoot|set-ltnewpage|toggle-ltcaption|
-                       set-special-column|set-special-multi|set-booktabs|unset-booktabs|
-                       set-top-space|set-bottom-space|set-interline-space|set-border-lines|
-                       tabular-valign-top|tabular-valign-middle|tabular-valign-bottom \n
-               <ARG>: additional argument for some commands, use debug mode to explore its values.
- * \li Origin: Jug, 28 Jul 2000
- * \endvar
- */
-               { LFUN_TABULAR_FEATURE, "tabular-feature", Noop, Edit },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_CELL_BACKWARD
  * \li Action: Moves the cursor to the previous cell inside the table.
@@ -2028,14 +2183,14 @@ void LyXAction::init()
  * \li Origin: Jug, 22 May 2000
  * \endvar
  */
-               { LFUN_CELL_BACKWARD, "cell-backward", Noop, Edit },
+               { LFUN_CELL_BACKWARD, "cell-backward", ReadOnly | NoUpdate, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_CELL_FORWARD
  * \li Action: Moves the cursor to the next cell inside the table.
  * \li Syntax: cell-forward
  * \endvar
  */
-               { LFUN_CELL_FORWARD, "cell-forward", Noop, Edit },
+               { LFUN_CELL_FORWARD, "cell-forward", ReadOnly | NoUpdate, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_CELL_SPLIT
  * \li Action: Splits cell and shifts right part to the next cell (inside the math grid).
@@ -2047,16 +2202,44 @@ void LyXAction::init()
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_VC_REGISTER
- * \li Action: Register the document as an file inside version control system (RCS, CVS).
+ * \li Action: Register the document as an file inside version control system.
  * \li Notion: File is registered inside cvs, svn or rcs repository acording to the existence
                of cvs/svn/rcs entries in the document's directory. \n
-              See LyX Additional Features Manual (Version Control Chapter) for additional
-              information.
+               See LyX Additional Features Manual (Version Control Chapter) for additional
+               information.
  * \li Syntax: vc-register
  * \li Origin: Lgb, 1 Jul 1997
  * \endvar
  */
                { LFUN_VC_REGISTER, "vc-register", ReadOnly, System },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_VC_RENAME
+ * \li Action: Renames the document to another name.
+ * \li Notion: Renaming with revision history is only supported by SVN.
+               For CVS it is simulated by adding the document under a new
+               name and deleting the old one. For RCS it is not supported.
+               Disabled if uncommitted changes exist.
+ * \li Syntax: vc-rename <FILENAME>
+ * \li Params: <FILENAME>: New name of the document.\n
+ *             A file dialog is opened if no filename is given.
+ * \li Origin: gb, 05 Feb 2013
+ * \endvar
+ */
+               { LFUN_VC_RENAME, "vc-rename", ReadOnly, System },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_VC_COPY
+ * \li Action: Copies the document to another name.
+ * \li Notion: Copying with revision history is only supported by SVN.
+               For RCS and CVS it is simulated by adding the document
+               under a new name.
+               Disabled if uncommitted changes exist.
+ * \li Syntax: vc-copy <FILENAME>
+ * \li Params: <FILENAME>: New name of the document.\n
+ *             A file dialog is opened if no filename is given.
+ * \li Origin: gb, 05 Feb 2013
+ * \endvar
+ */
+               { LFUN_VC_COPY, "vc-copy", ReadOnly, System },
 /*!
  * \var lyx::FuncCode lyx::LFUN_VC_CHECK_IN
  * \li Action: Checks-in/commits the changes of the registered file to the repository.
@@ -2068,8 +2251,7 @@ void LyXAction::init()
                { LFUN_VC_CHECK_IN, "vc-check-in", ReadOnly, System },
 /*!
  * \var lyx::FuncCode lyx::LFUN_VC_CHECK_OUT
- * \li Action: Checks-out the document for edit (and locks it for RCS).
- * \li Notion: This is implemented only for RCS and SVN, not CVS.
+ * \li Action: Checks-out the document for edit (and locks it in some cases).
  * \li Syntax: vc-check-out
  * \li Origin: Lgb, 1 Jul 1997
  * \endvar
@@ -2098,18 +2280,58 @@ void LyXAction::init()
                additional VCS commands.
  * \li Syntax: vc-command <FLAG> <PATH> <COMMAND>
  * \li Params:  <FLAG>: Flags for the command can be combined together.\n
-                       U - dUmmy - no flags \n
-                       D - Doc - need document loaded to proceed \n
-                       I - dIrty - mark document dirty \n
-                       R - Reload - ensure that the document is saved and reload it after command execution \n
-                       M - Message - ask for input string (commit message)\n
-               <PATH>: path where to start. $$p will be replaced by the current document path.\n
-               <COMMAND>: command to execute. $$i/$$p/$$m will be replaced by the current document/path/message.
+                        U - dUmmy - no flags \n
+                        D - Doc - need document loaded to proceed \n
+                        I - dIrty - mark document dirty \n
+                        R - Reload - ensure that the document is saved and reload it after command execution \n
+                        M - Message - ask for input string (commit message)\n
+                <PATH>: path where to start. $$p will be replaced by the current document path.\n
+                <COMMAND>: command to execute. $$i/$$p/$$m will be replaced by the current
+                           document(with absolute path)/path/message.
  * \li Sample: vc-command DR $$p "svn up"
  * \li Origin: sanda, 13 Jan 2009
  * \endvar
  */
                { LFUN_VC_COMMAND, "vc-command", NoBuffer | ReadOnly, System },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_VC_LOCKING_TOGGLE
+ * \li Action: Toggles the locking property of the edited file.
+ * \li Notion: This is currently implemented only for SVN.
+ * \li Syntax: vc-locking-toggle
+ * \li Origin: sanda, 25 Jun 2009
+ * \endvar
+ */
+               { LFUN_VC_LOCKING_TOGGLE, "vc-locking-toggle", ReadOnly, System },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_VC_REPO_UPDATE
+ * \li Action: Update the local archive directory in which resides
+               the current document with the remote repository.
+ * \li Syntax: vc-repo-update
+ * \li Origin: sanda, 16 Oct 2009
+ * \endvar
+ */
+               { LFUN_VC_REPO_UPDATE, "vc-repo-update", ReadOnly, System },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_VC_COMPARE
+ * \li Action: Compares two revisions of the same file under version control.
+ * \li Syntax: vc-compare [<REV1>] [<REV2>]
+ * \li Params: Revision number either points directly to commit in history
+               or if negative number -x it points to (last commit - x).\n
+              In RCS we subtract only in the last number of revision specification.
+               Special case "0" is reserved for the last committed revision.\n
+               <REV1>: Older file.\n
+              <REV2>: Newer file. Used only if REV1 > 0.\n
+               If no parameter is given, interactive dialog will be shown.
+ * \li Sample: Compare current document against last commit\n
+              vc-compare 0\n
+               Compare current document against current revision - 5 commits\n
+              vc-compare -5\n
+               Compare revisions 120 and 155\n
+              vc-compare 120 155
+ * \li Origin: sanda, 12 Feb 2010
+ * \endvar
+ */
+               { LFUN_VC_COMPARE, "vc-compare", ReadOnly, System },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_CHANGES_TRACK
@@ -2121,7 +2343,7 @@ void LyXAction::init()
                { LFUN_CHANGES_TRACK, "changes-track", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_CHANGES_OUTPUT
- * \li Action: Toggles showing of change tracking in typesetted output.
+ * \li Action: Toggles showing of change tracking in typeset output.
  * \li Syntax: changes-output
  * \li Origin: jspitzm, 21 Jan 2005
  * \endvar
@@ -2165,7 +2387,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_CHANGE_REJECT
  * \li Action: Rejects tracked change inside the selection.
- * \li Syntax: change-accept
+ * \li Syntax: change-reject
  * \li Origin: Levon, 16 Oct 2002
  * \endvar
  */
@@ -2207,59 +2429,76 @@ void LyXAction::init()
                         is dissolved. For example "dissolve" entry in the charstyles
                         sub-menu should only dissolve the charstyle inset, even if the
                         cursor is inside several nested insets of different type.\n
-                       For values see #lyx::InsetLayout::lyxtype_ .
+                        For values see #lyx::InsetLayout::lyxtype_ .
  * \li Origin: JSpitz, 7 Aug 2006
  * \endvar
  */
-               { LFUN_INSET_DISSOLVE, "inset-dissolve", Noop, Edit },
+               { LFUN_INSET_DISSOLVE, "inset-dissolve", AtPoint, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_INSERT
  * \li Action: Insert new inset (type given by the parameters).
  * \li Syntax: inset-insert <INSET> <ARGS>
- * \li Params: <INSET>: <bibitem|bibtex|cite|ert|listings|external|graphics|
-                         hyperlink|include|index|label|nomencl|vspace|ref|toc>\n
-               <ARGS>: depends on the given inset. Use "lyx -dbg action" to
-                      explore.
+ * \li Params: <INSET>: <bibitem|bibtex|citation|ert|listings|external|graphics|tabular|\n
+                        hyperlink|include|index|label|line|nomencl|vspace|ref|toc|script>\n
+               <ARGS>: depends on the given inset. Use "lyx -dbg action" to explore.
  * \li Sample: inset-insert ref LatexCommand <Format> reference "<label name>"\end_inset \n
                where <label name> is the name of the referenced label and
-              <Format> is one of the following: \n
-              ref -- <reference> \n
-              eqref -- (<reference>) \n
-              pageref -- <page> \n
+               <Format> is one of the following: \n
+               ref -- <reference> \n
+               eqref -- (<reference>) \n
+               pageref -- <page> \n
                vpageref -- on <page> \n
-              vref -- <reference> on <page> \n
-               prettyref -- Formatted reference
+               vref -- <reference> on <page> \n
+               formatted -- Formatted reference
  * \endvar
  */
                { LFUN_INSET_INSERT, "inset-insert", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_MODIFY
- * \li Action: Modify existing inset.
+ * \li Action: Modify some properties of an inset.
  * \li Notion: Used for bibitem, bibtex, box, branch, command, ert, external,
-                        floats, graphics, include, label, listings, note,
-                        phantom, ref, space, tabular, vspace, wrap insets.
- * \li Syntax: inset-modify <INSET> <ARGS>
- * \li Params: See #LFUN_INSET_INSERT for further details.
+                        floats, graphics, include, index, info, label,
+                        listings, newline, newpage, nomencl, note, phantom,
+                        ref, space, tabular, vspace, wrap insets.
+ * \li Syntax: inset-modify <INSET> <ARGS> \n
+               inset-modify changetype <TYPE>
+ * \li Sample: inset-modify note Note Comment \n
+              inset-modify changetype Ovalbox
  * \endvar
  */
-               { LFUN_INSET_MODIFY, "", Noop, Hidden },
+               { LFUN_INSET_MODIFY, "inset-modify", AtPoint, Edit },
 /*!
- * \var lyx::FuncCode lyx::LFUN_NEXT_INSET_MODIFY
- * \li Action: Modify the inset at cursor position, if there is one.
- * \li Notion: Used for bibitem, bibtex, box, branch, command, ert, external,
-                        floats, graphics, include, label, listings, note,
-                        phantom, ref, space, tabular, vspace, wrap insets.
- * \li Syntax: next-inset-modify <INSET> <ARGS>
- * \li Syntax: next-inset-modify changetype <TYPE>
- * \li Params: See #LFUN_INSET_INSERT for further details.
- * \li Origin: JSpitzm, 23 Mar 2008
+ * \var lyx::FuncCode lyx::LFUN_TABULAR_FEATURE
+ * \li Action: Modify properties of tabulars and table-like math environments.
+ * \li Syntax: tabular-feature <FEATURE> [<ARG>]
+ * \li Params: Generally see #LFUN_INSET_INSERT for further details.\n
+ *             <FEATURE>: append-row|append-column|delete-row|delete-column|copy-row|\n
+                       copy-column|move-column-right|move-column-left|move-row-down|move-row-up|\n
+                       toggle-line-top|toggle-line-bottom|toggle-line-left|toggle-line-right|\n
+                       align-left|align-right|align-center|align-block|align-decimal|set-decimal-point|\n
+                       valign-top|valign-bottom|valign-middle|longtabular-align-left|\n
+                       longtabular-align-center|longtabular-align-right|m-align-left|m-align-right|\n
+                       m-align-center|m-valign-top|m-valign-bottom|m-valign-middle|multicolumn|\n
+                       set-all-lines|unset-all-lines|toggle-longtabular|set-longtabular|unset-longtabular|set-pwidth|\n
+                       set-mpwidth|set-rotate-tabular|unset-rotate-tabular|toggle-rotate-tabular|\n
+                       set-rotate-cell|unset-rotate-cell|toggle-rotate-cell|set-usebox|set-lthead|\n
+                       unset-lthead|set-ltfirsthead|unset-ltfirsthead|set-ltfoot|unset-ltfoot|\n
+                       set-ltlastfoot|unset-ltlastfoot|set-ltnewpage|toggle-ltcaption|\n
+                       set-special-column|set-special-multicolumn|set-special-multirow|\n
+                       toggle-booktabs|set-booktabs|unset-booktabs|set-top-space|set-bottom-space|\n
+                       set-interline-space|set-border-lines|tabular-valign-top|\n
+                       tabular-valign-middle|tabular-valign-bottom|set-tabular-width\n
+               Various math-environment features are handled as well, e.g. add-vline-left/right for\n
+               the Grid/Array environment.\n
+               <ARG>: additional argument for some commands, use debug mode to explore its values.
+ * \li Origin: gm, 10 Dec 2015
  * \endvar
  */
-               { LFUN_NEXT_INSET_MODIFY, "next-inset-modify", Noop, Edit },
+               { LFUN_TABULAR_FEATURE, "tabular-feature", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_DIALOG_UPDATE
  * \li Action: Updates the values inside the dialog from the inset.
- * \li Notion: This is internal LFUN, not to be used by users. Called internally
+ * \li Notion: This is an internal LFUN, not to be used by users. Called internally
                by #LFUN_DIALOG_UPDATE
  * \li Params: <DIALOG-NAME>
  * \li Origin: leeming, 25 Feb 2003
@@ -2270,39 +2509,66 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_INSET_SETTINGS
  * \li Action: Open the inset's properties dialog.
  * \li Notion: Used for bibitem, bibtex, box, branch, citation, ert, external,
-               float, graphics, href, include, index, index_print, label, listings,
-               note, phantom, ref, space, tabular, vspace, wrap insets.
+               float, graphics, href, include, index, index_print, label, line,
+               listings, note, phantom, ref, space, tabular, vspace, wrap insets.
  * \li Syntax: inset-settings <INSET>
- * \li Params: <INSET>: <bibitem|bibtex|box|branch|citation|ert|external|float|
-                         graphics|href|include|index|index_print|label|listings|
-                         note|phantom|ref|space|tabular|vspace|wrap>.
+ * \li Params: <INSET>: <bibitem|bibtex|box|branch|citation|ert|external|float|\n
+                         graphics|href|include|index|index_print|label|line|\n
+                         listings|note|phantom|ref|space|tabular|vspace|wrap>.
  * \endvar
  */
                { LFUN_INSET_SETTINGS, "inset-settings", ReadOnly | AtPoint, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_TOGGLE
- * \li Action: Toggles the collapsable inset at cursor position,
+ * \li Action: Toggles the collapsible inset at cursor position,
                or the inset we are currently in.
  * \li Syntax: inset-toggle [<ARG>]
  * \li Params: <ARG>: <open|close|toggle|assign>. \n
-               open/close/toggle are for collapsable insets. toggle is used when no argument is given.\n
+               open/close/toggle are for collapsible insets. toggle is used when no argument is given.\n
                assign synchronize the branch-inset with activation status of the branch.
-              Used for global toggling when changed activation.
+               Used for global toggling when changed activation.
  * \li Origin: lasgouttes, 19 Jul 2001
  * \endvar
  */
                { LFUN_INSET_TOGGLE, "inset-toggle", ReadOnly | AtPoint, Edit },
 /*!
- * \var lyx::FuncCode lyx::LFUN_ALL_INSETS_TOGGLE
- * \li Action: Toggles (open/closes) all collapsable insets (of a given type) in the document.
- * \li Notion: Used for box, branch, ert, float, listings, note, tabular, wrap insets.
- * \li Syntax: all-insets-toggle [<STATE>] [<INSET>]
- * \li Params: <STATE>: <toggle|open|close|assign> default: toggle \n
-               <INSET>: <box|branch|ert|float|listings|note|tabular|wrap> default: all insets
- * \li Origin: leeming, 30 Mar 2004
- * \endvar
- */
-               { LFUN_ALL_INSETS_TOGGLE, "all-insets-toggle", ReadOnly, Edit },
+ * \var lyx::FuncCode lyx::LFUN_INSET_FORALL
+ * \li Action: Apply the given commands on insets of a given name.
+ * \li Notion: WARNING: use at your own risks; this function gives
+               you too many ways of shooting yourself in the foot.
+               A typical example is
+                   inset-forall Note note-insert
+               which starts an infinite loop. This is mitigated by the fact
+               that the number of actions is arbitrarily limited to 100000.
+               Note also that inset-forall does not update metrics between
+               iterations, which can lead to bugs. This has to be eventually
+               fixed.
+ * \li Syntax: inset-forall <NAME> <LFUN-COMMAND> \n
+               <NAME>: Type of Inset. If <NAME> is *, all insets are matched.
+               The name is used like for InsetLayout in layout files: "Note"
+               matches all note insets, while "Note:Note" only matches LyX
+               yellow note insets.
+ * \li Sample: Remove all index insets: \n
+                  inset-forall Index char-delete-forward \n
+               Close all Notes (also works for a particular branch, for example): \n
+                  inset-forall Note inset-toggle close \n
+               Transform all yellow notes to comments \n
+                  inset-forall Note:Note inset-modify note Note Comment \n
+               Try to put LyX in an infinite loop if there is at least a Note: \n
+                  inset-forall Note char-backward
+ * \li Origin: lasgouttes, 27 Nov 2009
+ * \endvar
+ */
+               { LFUN_INSET_FORALL, "inset-forall", ReadOnly, Edit },
+
+/*!
+ * \var lyx::FuncCode lyx::LFUN_GRAPHICS_RELOAD
+ * \li Action: Reloads the image if necessary.
+ * \li Syntax: graphics-reload
+ * \li Origin: vfr, 10 Aug 2009
+ * \endvar
+ */
+               { LFUN_GRAPHICS_RELOAD, "graphics-reload", ReadOnly | AtPoint, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_SET_GRAPHICS_GROUP
  * \li Action: Set the group for the graphics inset on the cursor position.
@@ -2351,9 +2617,14 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_LANGUAGE
  * \li Action: Set language from the current cursor position.
- * \li Syntax: language <LANG>
+ * \li Syntax: language <LANG> [set]
  * \li Params: <LANG>: Requested language. Look in lib/languages for
-                       the list.
+                       the list. "language reset" or "language" (without param)
+                       reset to the document language.
+                  set: If used, the language will be set to the specified
+                       language. Otherwise, the language will be toggled (i.e., if
+                       the current language is LANG, switch to the document language
+                       or the default language, if LANG is the document language).
  * \li Origin: Dekel, 2 Mar 2000
  * \endvar
  */
@@ -2364,8 +2635,8 @@ void LyXAction::init()
  * \li Action: Goto a label.
  * \li Syntax: label-goto [<LABEL>]
  * \li Params: <LABEL>: Requested label. If no label is given and reference
-                       is on cursor position, Bookmark 0 is saved and
-                       cursor moves to the position of referenced label.
+                        is on cursor position, Bookmark 0 is saved and
+                        cursor moves to the position of referenced label.
  * \li Origin: Ale, 6 Aug 1997
  * \endvar
  */
@@ -2391,14 +2662,14 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_BOOKMARK_GOTO
  * \li Action: Moves the cursor to the numbered bookmark, opening the file
-               if necessary. Note that bookmarsk are saved per-session, not
+               if necessary. Note that bookmarks are saved per-session, not
                per file.
  * \li Notion: Bookmark 0 has a special purpose. It is automatically set \n
                1. to the paragraph you are currently editing \n
-              2. to the paragraph from where you are jumping to the last-edited
-                 position (jump-back feature) \n
-              3. when jumping from crossreference to the requested label by
-                 #LFUN_LABEL_GOTO.
+               2. to the paragraph from where you are jumping to the last-edited
+                  position (jump-back feature) \n
+               3. when jumping from crossreference to the requested label by
+                  #LFUN_LABEL_GOTO.
  * \li Syntax: bookmark-goto <NUMBER>
  * \li Params: <NUMBER>: the number of the bookmark to restore.
  * \li Origin: Dekel, 27 January 2001
@@ -2447,10 +2718,11 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_TOOLBAR_TOGGLE
  * \li Action: Toggles visibility of a given toolbar between on/off/auto.
- * \li Notion: Skiping "auto" when allowauto is false.
+ * \li Notion: Skipping "auto" when allowauto is false.
  * \li Syntax: toolbar-toggle <NAME> [allowauto]
- * \li Params: <NAME>: standard|extra|table|math|mathmacrotemplate|
-                       minibuffer|review|view/update|math_panels|vcs
+ * \li Params: <NAME>: standard|extra|table|math|mathmacrotemplate|\n
+                       minibuffer|review|view/update|math_panels|vcs|
+                       view-others|update-others
  * \li Origin: Edwin, 21 May 2007
  * \endvar
  */
@@ -2469,11 +2741,11 @@ void LyXAction::init()
  * \li Syntax: ui-toggle <statusbar|menubar|scrollbar|frame|fullscreen>
  * \li Params: statusbar  : Toggle visibility of the statusbar.\n
                menubar    : Toggle visibility of the menubar.\n
-              scrollbar  : Toggle visibility of the scrollbar.\n
-              frame      : Toggle visibility of the frames around editing window.\n
-              fullscreen : Toggle fullscreen mode. This also covers calling the
-                           previous functions. However #LFUN_TOOLBAR_TOGGLE for the
-                           custom tweaks of the toolbars should be used.
+               scrollbar  : Toggle visibility of the scrollbar.\n
+               frame      : Toggle visibility of the frames around editing window.\n
+               fullscreen : Toggle fullscreen mode. This also covers calling the
+                            previous functions. However #LFUN_TOOLBAR_TOGGLE for the
+                            custom tweaks of the toolbars should be used.
  * \li Origin: sanda, 9 Feb 2007
  * \endvar
  */
@@ -2484,7 +2756,7 @@ void LyXAction::init()
  * \li Action: Creates new empty LyX window.
  * \li Notion: Already opened documents from the previous window can be found under View menu.
  * \li Syntax: window-new [<GEOMETRY>]
- * \li Params: <GEOMETRY>: pass the geometry of the window. This parameter is currently 
+ * \li Params: <GEOMETRY>: pass the geometry of the window. This parameter is currently
                            accepted only on Windows platform.
  * \li Origin: Abdel, 21 Oct 2006
  * \endvar
@@ -2500,37 +2772,49 @@ void LyXAction::init()
                { LFUN_WINDOW_CLOSE, "window-close", NoBuffer, Buffer },
 
 /*!
- * \var lyx::FuncCode lyx::LFUN_SPLIT_VIEW
+ * \var lyx::FuncCode lyx::LFUN_VIEW_SPLIT
  * \li Action: Creates another split view of current buffer.
- * \li Notion: All split views act in the same way indpendently.
- * \li Syntax: split-view <vertical|horizontal>
+ * \li Notion: All split views act in the same way independently.
+ * \li Syntax: view-split <vertical|horizontal>
  * \li Params: horizontal : The work areas are laid out side by side.\n
                vertical   : The work areas laid out vertically.
  * \li Origin: Abdel, 20 Feb 2008
  * \endvar
  */
-               { LFUN_SPLIT_VIEW, "split-view", ReadOnly, Buffer },
+               { LFUN_VIEW_SPLIT, "view-split", ReadOnly, Buffer },
 
 /*!
- * \var lyx::FuncCode lyx::LFUN_CLOSE_TAB_GROUP
+ * \var lyx::FuncCode lyx::LFUN_VIEW_CLOSE
+ * \li Action: Close the current document work area.
+ * \li Notion: Close the current work area. If no other work areas are showing the buffer,
+               then close the associated buffer as well.
+ * \li Syntax: view-close
+ * \li Origin: Tommaso, 15 Sep 2012
+ * \endvar
+ */
+               { LFUN_VIEW_CLOSE, "view-close", ReadOnly, Buffer },
+
+/*!
+ * \var lyx::FuncCode lyx::LFUN_TAB_GROUP_CLOSE
  * \li Action: Close the current tab group.
- * \li Notion: This only closes the work areas, not the buffer themselves.
+ * \li Notion: This only closes the work areas, not the buffers themselves.
                The still opened buffers can be visualized in another tab group.
- * \li Syntax: close-tab-group
+ * \li Syntax: tab-group-close
  * \li Origin: Abdel, 21 Feb 2008
  * \endvar
  */
-               { LFUN_CLOSE_TAB_GROUP, "close-tab-group", ReadOnly, Buffer },
+               { LFUN_TAB_GROUP_CLOSE, "tab-group-close", ReadOnly, Buffer },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_DIALOG_SHOW
- * \li Action: Shows hidden dialog or create new one for a given function/inset settings etc.
+ * \li Action: Shows hidden dialog or creates new one for a given function/inset settings etc.
  * \li Syntax: dialog-show <NAME> [<DATA>]
  * \li Params: <NAME>: aboutlyx|bibitem|bibtex|box|branch|changes|character|citation|\n
-               document|errorlist|ert|external|file|findreplace|findreplaceadv|float|graphics|\n
-               href|include|index|index_print|info|nomenclature|label|listings|log|mathdelimiter|\n
-               mathmatrix|mathspace|note|paragraph|phantom|prefs|print|ref|sendto|space|\n
-               spellchecker|symbols|tabular|tabularcreate|thesaurus|texinfo|toc|\n
-               view-source|vspace|wrap|<SPECIAL> \n
+               compare|document|errorlist|ert|external|file|findreplace|findreplaceadv|float|\n
+               graphics|href|include|index|index_print|info|label|line|listings|log|mathdelimiter|\n
+               mathmatrix|mathspace|nomenclature|nomencl_print|note|paragraph|phantom|prefs|\n
+               print|ref|sendto|space|spellchecker|symbols|tabular|tabularcreate|\n
+               thesaurus|texinfo|toc|view-source|vspace|wrap|<SPECIAL> \n
                <SPECIAL>: latexlog|vclog \n
                <DATA>: data, usually settings for the given dialog. Use debug mode for the
                        details.
@@ -2591,7 +2875,7 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_MOUSE_PRESS
  * \li Action: This function is called when mouse button is pressed (inside workarea).
                Action depends on the context.
- * \li Notion: This is internal LFUN, not to be used by users.
+ * \li Notion: This is an internal LFUN, not to be used by users.
  * \li Origin: Andre, 9 Aug 2002
  * \endvar
  */
@@ -2600,7 +2884,7 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_MOUSE_DOUBLE
  * \li Action: This function is called when double click on mouse button is
                pressed (inside workarea). Action depends on the context.
- * \li Notion: This is internal LFUN, not to be used by users.
+ * \li Notion: This is an internal LFUN, not to be used by users.
  * \li Origin: Andre, 9 Aug 2002
  * \endvar
  */
@@ -2609,7 +2893,7 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_MOUSE_TRIPLE
  * \li Action: This function is called when triple click on mouse button is
                pressed (inside workarea). Action depends on the context.
- * \li Notion: This is internal LFUN, not to be used by users.
+ * \li Notion: This is an internal LFUN, not to be used by users.
  * \li Origin: Andre, 9 Aug 2002
  * \endvar
  */
@@ -2618,7 +2902,7 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_MOUSE_MOTION
  * \li Action: This function is called when mouse cursor is moving over the text.
                Action depends on the context.
- * \li Notion: This is internal LFUN, not to be used by users.
+ * \li Notion: This is an internal LFUN, not to be used by users.
  * \li Origin: Andre, 9 Aug 2002
  * \endvar
  */
@@ -2627,7 +2911,7 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_MOUSE_RELEASE
  * \li Action: This function is called when mouse button is released (inside workarea).
                Action depends on the context.
- * \li Notion: This is internal LFUN, not to be used by users.
+ * \li Notion: This is an internal LFUN, not to be used by users.
  * \li Origin: Andre, 9 Aug 2002
  * \endvar
  */
@@ -2645,7 +2929,7 @@ void LyXAction::init()
  * \li Action: Turn on the primary keyboard map.
  * \li Notion: Maps were widely used in past, when X-windows didn't have nowadays
                keyboard support. They can be still used to maintain uniform keyboard
-               layout across the various plaforms.\n
+               layout across the various platforms.\n
                The language is to be set in the Preferences dialog.
  * \li Syntax: keymap-primary
  * \endvar
@@ -2684,22 +2968,37 @@ void LyXAction::init()
                { LFUN_SERVER_GET_FILENAME, "server-get-filename", ReadOnly, System },
 /*!
  * \var lyx::FuncCode lyx::LFUN_SERVER_GOTO_FILE_ROW
- * \li Action: Sets the cursor position based on the row number of generated TeX file.
+ * \li Action: Sets the cursor position in LyX based on the row number of generated TeX file.
  * \li Notion: This can be useful for DVI inverse-search or detection of the problematic
                line from LaTeX compilation. Note that before this function can be used
-              export to LaTeX output must occur (in order to map the row numbers).
+               export to LaTeX output must occur (in order to map the row numbers).
  * \li Syntax: server-goto-file-row <FILE[.ext]> <ROW_NUMBER>
- * \li Params: <FILE>: the filename. Environment variables are expaned in the path.
+ * \li Params: <FILE>: the path and filename. Environment variables are expanded in the path.
                        In case this LFUN does not work make sure you are giving correct
-                      path to the file.\n
+                       path to the file.\n
                        If the file is located inside LyX temporary directory it will be
-                      mapped back into the appropriate opened buffer (e.g. for the case
-                      of generated .tex file).
-                 .ext: extensions will be automatically replaced by .lyx.
+                       mapped back into the appropriate opened buffer (e.g. for the case
+                       of generated .tex file).\n
+                 .ext: extensions will be automatically replaced by .lyx.\n
+                 <ROW_NUMBER> The row number of the LaTeX file to which to go.
+ * \li Sample: server-goto-file-row /home/user/example.lyx 41\n
+               server-goto-file-row /tmp/lyx_tmpdir.XM3088/lyx_tmpbuf0/example.tex 41
  * \li Origin: Edmar, 23 Dec 1998
  * \endvar
  */
-               { LFUN_SERVER_GOTO_FILE_ROW, "server-goto-file-row", ReadOnly, System },
+               { LFUN_SERVER_GOTO_FILE_ROW, "server-goto-file-row", ReadOnly | NoBuffer, System },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_FORWARD_SEARCH
+ * \li Action: Sets the cursor position in the previewed (dvi/pdf) file based on the row
+               number in LyX window.
+ * \li Notion: The external program used for forward search call can be specified in
+               LyX Output preferences. See Additional manual for details of these
+              settings.
+ * \li Syntax: forward-search
+ * \li Origin: sanda, 14 Apr 2010
+ * \endvar
+ */
+               { LFUN_FORWARD_SEARCH, "forward-search", ReadOnly, System },
 /*!
  * \var lyx::FuncCode lyx::LFUN_SERVER_NOTIFY
  * \li Action: Sends notify message about the last key-sequence to client.
@@ -2712,7 +3011,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_SERVER_SET_XY
  * \li Action: Sets the cursor position based on the editing area coordinates
-               (similar as clicking on that point with left mouse button).
+               (similar to clicking on that point with left mouse button).
  * \li Syntax: server-set-xy <X> <Y>
  * \endvar
  */
@@ -2729,13 +3028,13 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_BUILD_PROGRAM
  * \li Action: Generates the code (literate programming).
  * \li Notion: Latex file with extension \literate_extension is generated.
-               Then LyX invokes \build_command (with a default of``make'') to generate the code and
-              \build_error_filter to process the compilation error messages. \n
-              In case you want to process your literate file with a script, or some other program,
-              just insert in your lyxrc file an entry with:\n
-              \build_command "my_script my_arguments" \n
-              The \build_error_filter differs from the \literate_error_filter only in that the
-              former will identify error messages from your compiler.
+               Then LyX invokes \build_command (with a default of ``make'') to generate the code and
+               \build_error_filter to process the compilation error messages. \n
+               In case you want to process your literate file with a script, or some other program,
+               just insert in your lyxrc file an entry with:\n
+               \build_command "my_script my_arguments" \n
+               The \build_error_filter differs from the \literate_error_filter only in that the
+               former will identify error messages from your compiler.
  * \li Syntax: build-program
  * \endvar
  */
@@ -2776,6 +3075,16 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_BUFFER_TOGGLE_COMPRESSION, "buffer-toggle-compression", Noop, Buffer },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BUFFER_TOGGLE_OUTPUT_SYNC
+ * \li Action: Toggles including of resources for forward/reverse search of the given document.
+ * \li Notion: When toggled on, SyncTeX is invoked for PDF, while srcltx package
+               is used for DVI. Custom LaTeX macro can be defined in preferences.
+ * \li Syntax: buffer-toggle-output-sync
+ * \li Origin: sanda, 25 May 2010
+ * \endvar
+ */
+               { LFUN_BUFFER_TOGGLE_OUTPUT_SYNC, "buffer-toggle-output-sync", Noop, System },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_CLOSE
  * \li Action: Closes the current buffer.
@@ -2785,18 +3094,30 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_BUFFER_CLOSE, "buffer-close", ReadOnly, Buffer },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BUFFER_CLOSE_ALL
+ * \li Action: Closes all buffers.
+ * \li Notion: Closes all buffers, asking whether to save it, etc,
+               if a buffer has been modified.
+ * \li Syntax: buffer-close-all
+ * \endvar
+ */
+               { LFUN_BUFFER_CLOSE_ALL, "buffer-close-all", ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_EXPORT
  * \li Action: Exports the current buffer (document) to the given format.
- * \li Syntax: buffer-export <FORMAT>
+ * \li Syntax: buffer-export <FORMAT> [<DEST>]
  * \li Params: <FORMAT> is either "custom" or one of the formats which you
                         can find in Tools->Preferences->File formats->Format.
-                       Usual format you will enter is "pdf2" (pdflatex),
-                       "pdflatex" (plain tex for pdflatex) or "ps" for postscript.\n
-                       In case of "custom" you will be asked for a format you
-                       want to start from and for the command that you want to
-                       apply to this format. Internally the control is then passed
-                       to #LFUN_BUFFER_EXPORT_CUSTOM.
+                        Usual format you will enter is "pdf2" (pdflatex),
+                        "pdflatex" (plain tex for pdflatex) or "ps" for postscript.\n
+                        In case of "custom" you will be asked for a format you
+                        want to start from and for the command that you want to
+                        apply to this format. Internally the control is then passed
+                        to #LFUN_BUFFER_EXPORT_CUSTOM.
+               <DEST>  If present, this argument provides the export destination
+                       filename. Its containing folder will also be the destination
+                       folder, where all the needed external files will be copied.
  * \li Origin: Lgb, 29 Jul 1997
  * \endvar
  */
@@ -2809,31 +3130,33 @@ void LyXAction::init()
  * \li Params: <FORMAT> format to start from (LyX will care to produce such
                         intermediate file).\n
                <COMMAND> this command will be launched on the file. Note that you can
-              use "$$FName" string to qualify the intermediate file.
+                         use "$$FName" string to qualify the intermediate file.
  * \li Sample: buffer-export-custom dvi dvips -f $$FName -o myfile.ps
  * \li Origin: leeming, 27 Mar 2004
  * \endvar
  */
                { LFUN_BUFFER_EXPORT_CUSTOM, "buffer-export-custom", ReadOnly, Buffer },
 /*!
- * \var lyx::FuncCode lyx::LFUN_BUFFER_PRINT
- * \li Action: Prints the current document.
- * \li Notion: Many settings can be given via the preferences dialog.
- * \li Syntax: buffer-print <TARGET> <TARGET-NAME> <COMMAND>
- * \li Params: <TARGET> is either "printer" or "file".\n
-               <TARGER-NAME> is either "default" or file name or printer name.\n
-              <COMMAND> command ensuring the printing job.
- * \li Sample: buffer-print file "/trash/newfile1.ps" "dvips"
- * \li Origin: leeming, 28 Mar 2004
+ * \var lyx::FuncCode lyx::LFUN_BUFFER_EXPORT_AS
+ * \li Action: Opens a dialog for exporting the current buffer.
+ * \li Syntax: buffer-export-as [<FORMAT>]
+ * \li Params: <FORMAT> is the export format initially selected in the dialog.
+ *                      You can pass any of the formats which you can find in
+ *                      Tools->Preferences->File formats->Format, provided it
+ *                      has the "document" flag set. If no format is specified
+ *                      the dialog will start with the default output format of
+ *                      the current document.
+ * \li Sample: buffer-export-as pdf2
+ * \li Origin: tommaso, 6 Oct 2011
  * \endvar
  */
-               { LFUN_BUFFER_PRINT, "buffer-print", ReadOnly, Buffer },
+               { LFUN_BUFFER_EXPORT_AS, "buffer-export-as", ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_IMPORT
  * \li Action: Import a given file as a lyx document.
  * \li Notion: File can be imported iff lyx file format is (transitively) reachable via
-               defined convertors in preferences. Look into File->Import menu to get
-              an idea of the currently active import formats.
+               defined converters in preferences. Look in the File->Import menu to get
+               an idea of the currently active import formats.
  * \li Syntax: buffer-import <FORMAT> [<FILE>]
  * \li Origin: Asger, 24 Jul 1998
  * \endvar
@@ -2841,7 +3164,7 @@ void LyXAction::init()
                { LFUN_BUFFER_IMPORT, "buffer-import", NoBuffer, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_NEW
- * \li Action: Creates a new buffer (that is, document).
+ * \li Action: Creates a new buffer (that is, document) and switches to it.
  * \li Notion: Implicit path can be set in Preferences dialog.
  * \li Syntax: buffer-new [<FILE>]
  * \li Params: <FILE>: filename of created file with absolute path.
@@ -2868,20 +3191,18 @@ void LyXAction::init()
                { LFUN_BUFFER_RELOAD, "buffer-reload", ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_SWITCH
- * \li Action: Switch to the given buffer.
- * \li Notion: This is useful also in case you need simultaneously more views of the edited
-               document in different LyX windows.
- * \li Syntax: buffer-new-template <BUFFER>
- * \li Params: <BUFFER>: already opened document which is to be shown.
+ * \li Action: Display and switch to the given buffer.
+ * \li Syntax: buffer-switch <BUFFER>
+ * \li Params: <BUFFER>: path and filename of already opened (but possibly hidden)
+                         document which is to be shown.
  * \endvar
  */
                { LFUN_BUFFER_SWITCH, "buffer-switch", NoBuffer | ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_TOGGLE_READ_ONLY
  * \li Action: Toggle editing mode of the current document between read/write and read-only.
- * \li Notion: In the ->Readonly mode checks-in/commits the data if the file is under version control.
-               In the Readonly-> mode checkouts the data from repository. \n
-              If these operations fail, buffer won't be toggled.
+ * \li Notion: This function is not allowed if the file is under version control, since
+               read-only flag is often used in version control file locking.
  * \li Syntax: buffer-toggle-read-only
  * \li Origin: Lgb, 27 May 1997
  * \endvar
@@ -2907,8 +3228,8 @@ void LyXAction::init()
  * \li Action: Exports the current document and put the result into the
                temporary directory.
  * \li Notion: In case you are already viewing the exported document (see #LFUN_BUFFER_VIEW)
-               the output will be rewriten - updated. This is useful in case your viewer
-              is able to detect such changes (e.g. ghostview for postscript).
+               the output will be rewritten - updated. This is useful in case your viewer
+               is able to detect such changes (e.g. ghostview for postscript).
  * \li Syntax: buffer-update [<FORMAT>]
  * \li Params: <FORMAT>: The format to display, where this is one of the
                          formats defined (in the current GUI) in the
@@ -2939,6 +3260,29 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_BUFFER_WRITE_AS, "buffer-write-as", ReadOnly, Buffer },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BUFFER_FORALL
+ * \li Action: Applies a command to all non-hidden buffers.
+ * \li Notion: a buffer is `hidden' if it is internally open in LyX, but not
+               visible in any window.
+ * \li Syntax: buffer-forall <LFUN-COMMAND>
+ * \li Params: <LFUN-COMMAND>: The command to be applied to the buffers.
+ * \li Sample: Close all Notes in buffers: \n
+                  buffer-forall inset-forall Note inset-toggle close \n
+               Toggle change tracking on buffers: \n
+                  buffer-forall changes-track \n
+               Toggle read-only for buffers: \n
+                  buffer-forall buffer-toggle-read-only \n
+               Show statistics for individual buffers: \n
+                  buffer-forall statistics \n
+               Activate the branch named "Solutions" in buffers: \n
+                  buffer-forall branch-activate Solutions \n
+               Export buffers to PDF (pdflatex): \n
+                  buffer-forall buffer-export pdf2 \n
+ * \li Origin: skostysh, 20 Jul 2012
+ * \endvar
+ */
+               { LFUN_BUFFER_FORALL, "buffer-forall", ReadOnly | Argument, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_WRITE_ALL
  * \li Action: Save all changed documents.
@@ -2956,6 +3300,14 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_BUFFER_NEXT, "buffer-next", ReadOnly, Buffer },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BUFFER_MOVE_NEXT
+ * \li Action: Moves the current tab one spot to the right.
+ * \li Syntax: buffer-move-next
+ * \li Origin: skostysh, 7 Apr 2015
+ * \endvar
+ */
+               { LFUN_BUFFER_MOVE_NEXT, "buffer-move-next", ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_PREVIOUS
  * \li Action: Switch to the previous opened document.
@@ -2963,10 +3315,18 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_BUFFER_PREVIOUS, "buffer-previous", ReadOnly, Buffer },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BUFFER_MOVE_PREVIOUS
+ * \li Action: Moves the current tab one spot to the left.
+ * \li Syntax: buffer-move-previous
+ * \li Origin: skostysh, 7 Apr 2015
+ * \endvar
+ */
+               { LFUN_BUFFER_MOVE_PREVIOUS, "buffer-move-previous", ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_MASTER_BUFFER_UPDATE
- * \li Action: When run from a child document, this updates (exports) document built
-               from the master buffer, if available.
+ * \li Action: Update (export) the document built from the master buffer,
+               if the current buffer is part of a master/child document.
  * \li Syntax: master-buffer-update [<FORMAT>]
  * \li Params: <FORMAT>: The format to display, where this is one of the
                          formats defined (in the current GUI) in the
@@ -2979,8 +3339,8 @@ void LyXAction::init()
                { LFUN_MASTER_BUFFER_UPDATE, "master-buffer-update", ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_MASTER_BUFFER_VIEW
- * \li Action: When run from a child document, this command shows a preview built
-               from the master buffer, if available.
+ * \li Action: Show a preview built from the master buffer, if available.
+               if the current buffer is part of a master/child document.
  * \li Syntax: master-buffer-view [<FORMAT>]
  * \li Params: <FORMAT>: The format to display, where this is one of the
                          formats defined (in the current GUI) in the
@@ -3020,7 +3380,7 @@ void LyXAction::init()
  * \li Origin: leeming, 30 Mar 2004
  * \endvar
  */
-               { LFUN_BUFFER_PARAMS_APPLY, "buffer-params-apply", Noop, Buffer },
+               { LFUN_BUFFER_PARAMS_APPLY, "buffer-params-apply", NoInternal, Buffer },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_FILE_INSERT
@@ -3061,12 +3421,12 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_CALL
  * \li Action: Executes a command defined in a .def file.
  * \li Notion: The definitions are by default read from lib/commands/default.def.\n
-               A .def file allows to define a command with \\define "<NAME>" "<LFUN>"
+               A .def file allows to define a command with \define "<NAME>" "<LFUN>"
                where <NAME> is the name of the new command and <LFUN> is the lfun code
                to be executed (see e.g. #LFUN_COMMAND_SEQUENCE).
-               \\def_file "FileName" allows to include another .def file. \n
+               \def_file "FileName" allows to include another .def file. \n
                This is particularly useful in connection with toolbar buttons:
-               Since the name of the button image for this lfun is 
+               Since the name of the button image for this lfun is
                lib/images/commands/<NAME>.png this is the way to assign an image
                to a complex command-sequence.
  * \li Syntax: call <NAME>
@@ -3078,7 +3438,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_META_PREFIX
  * \li Action: Simulate halting Meta key (Alt key on PCs).
- * \li Notion: Used for buffer editation not for GUI control.
+ * \li Notion: Used for buffer edition not for GUI control.
  * \li Syntax: meta-prefix
  * \endvar
  */
@@ -3093,12 +3453,14 @@ void LyXAction::init()
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_COMMAND_EXECUTE
- * \li Action: Opens the minibuffer toolbar so that the user can type in there.
+ * \li Action: Switches the focus to the minibuffer so that the user can type
+               in there. If necessary, it opens the minibuffer toolbar.
  * \li Notion: Usually bound to M-x shortcut.
  * \li Syntax: command-execute
  * \endvar
  */
                { LFUN_COMMAND_EXECUTE, "command-execute", NoBuffer, Edit },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_COMMAND_PREFIX
  * \li Action: Return the current key sequence and available options as a string.
@@ -3138,6 +3500,19 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_MESSAGE, "message", NoBuffer, System },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_DEBUG_LEVEL_SET
+ * \li Action: Set debug output level.
+ * \li Syntax: debug-level-set <LEVEL>
+ * \li Params: <LEVEL>: comma separated list of levels or the correspondent number
+                        of their combination. 0 is equivalent to disabling all debug
+                        events. See lyx -dbg for the current list of debug levels
+                        and their numbers.
+ * \li Origin: sanda, 28 Dec 2009
+ * \endvar
+ */
+               { LFUN_DEBUG_LEVEL_SET, "debug-level-set", NoBuffer, System },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_PREFERENCES_SAVE
  * \li Action: Save user preferences.
@@ -3166,8 +3541,8 @@ void LyXAction::init()
                { LFUN_LYXRC_APPLY, "lyxrc-apply", NoBuffer, System },
 /*!
  * \var lyx::FuncCode lyx::LFUN_CURSOR_FOLLOWS_SCROLLBAR_TOGGLE
- * \li Action: Determine whether keep cursor inside the editing window regardless
-               the scrollbar movement.
+ * \li Action: Determine whether to keep cursor inside the editing window regardless
+               of the scrollbar movement.
  * \li Syntax: toggle-cursor-follows-scrollbar
  * \li Origin: ARRae, 2 Dec 1997
  * \endvar
@@ -3186,7 +3561,8 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_STATISTICS
  * \li Action: Count the statistics (number of words and characters)
-               in the document or in the given selection.
+               in the document or in the given selection and display it
+               in a dialog box.
  * \li Notion: Note that this function gives the number of words/chars written,
                not the number of characters which will be typeset.
  * \li Syntax: statistics
@@ -3194,6 +3570,23 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_STATISTICS, "statistics", ReadOnly, System },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SERVER_GET_STATISTICS
+ * \li Action: Returns the statistics (number of words and characters)
+               in the document or in the given selection.
+ * \li Notion: Note that this function gives the number of words/chars written,
+               not the number of characters which will be typeset.
+ * \li Syntax: server-get-statistics [<TYPE>]
+ * \li Params: <TYPE>: <words|chars|chars-space> The requested count; if not
+                       specified, the three values are returned, separated
+                       by a space.\n
+                words: count words.\n
+                chars: count characters.\n
+                chars-space: count characters and spaces.
+ * \li Origin: brokenclock, Oct 10 2014
+ * \endvar
+ */
+               { LFUN_SERVER_GET_STATISTICS, "server-get-statistics", ReadOnly, System },
 /*!
  * \var lyx::FuncCode lyx::LFUN_COMPLETION_INLINE
  * \li Action: Show the inline completion at the cursor position.
@@ -3211,17 +3604,17 @@ void LyXAction::init()
  */
                { LFUN_COMPLETION_POPUP, "completion-popup", ReadOnly | NoUpdate, Edit },
 /*!
- * \var lyx::FuncCode lyx::LFUN_COMPLETION_COMPLETE
+ * \var lyx::FuncCode lyx::LFUN_COMPLETE
  * \li Action: Try to complete the word or command at the cursor position.
  * \li Syntax: complete
  * \li Origin: sts, Feb 19 2008
  * \endvar
  */
-               { LFUN_COMPLETION_COMPLETE, "complete", SingleParUpdate, Edit },
+               { LFUN_COMPLETE, "complete", SingleParUpdate, Edit },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_COMPLETION_CANCEL
- * \li Action: Try to cancel completion, either the popup or the inline completion
+ * \li Action: Try to cancel completion, either the popup or the inline completion.
  * \li Syntax: completion-cancel
  * \li Origin: sts, Sep 07 2008
  * \endvar
@@ -3237,9 +3630,29 @@ void LyXAction::init()
                { LFUN_COMPLETION_ACCEPT, "completion-accept", SingleParUpdate, Edit },
 
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BRANCH_ADD
+ * \li Action: Add a branch to the buffer's BranchList.
+ * \li Syntax: branch-add <BRANCH>
+ * \li Params: <BRANCH>: Name of the branch to add
+ * \li Origin: spitz, 7 Jul 2009
+ * \endvar
+ */
+               { LFUN_BRANCH_ADD, "branch-add", AtPoint, Buffer },
+
+
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BRANCH_INVERT
+ * \li Action: Toggles inversion status of branch inset.
+ * \li Syntax: branch-invert
+ * \li Origin: rgheck, 12 July 2016
+ * \endvar
+ */
+               { LFUN_BRANCH_INVERT, "branch-invert", AtPoint, Buffer },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_BRANCH_ACTIVATE
- * \li Action: Activate the branch
+ * \li Action: Activate the branch.
  * \li Syntax: branch-activate <BRANCH>
  * \li Params: <BRANCH>: The branch to activate
  * \li Sample: lyx -x "branch-activate answers" -e pdf2 finalexam.lyx \n
@@ -3251,31 +3664,76 @@ void LyXAction::init()
                { LFUN_BRANCH_ACTIVATE, "branch-activate", AtPoint, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BRANCH_DEACTIVATE
- * \li Action: De-activate the branch
+ * \li Action: De-activate the branch.
  * \li Syntax: branch-deactivate <BRANCH>
  * \li Params: <BRANCH>: The branch to deactivate
  * \li Origin: rgh, 27 May 2008
  * \endvar
  */
                { LFUN_BRANCH_DEACTIVATE, "branch-deactivate", AtPoint, Buffer },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BRANCH_MASTER_ACTIVATE
+ * \li Action: Activate the branch in the master buffer.
+ * \li Syntax: branch-master-activate <BRANCH>
+ * \li Params: <BRANCH>: The branch to activate
+ * \li Sample: lyx -x "branch-activate answers" -e pdf2 finalexam.lyx \n
+               could be used to export a pdf with the answers branch included
+               without one's having to open LyX and activate the branch manually.
+ * \li Origin: spitz, 30 Sep 2012
+ * \endvar
+ */
+               { LFUN_BRANCH_MASTER_ACTIVATE, "branch-master-activate", AtPoint, Buffer },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BRANCH_MASTER_DEACTIVATE
+ * \li Action: De-activate the branch in the master buffer.
+ * \li Syntax: branch-master-deactivate <BRANCH>
+ * \li Params: <BRANCH>: The branch to deactivate
+ * \li Origin: spitz, 30 Sep 2012
+ * \endvar
+ */
+               { LFUN_BRANCH_MASTER_DEACTIVATE, "branch-master-deactivate", AtPoint, Buffer },
 
 /*!
- * \var lyx::FuncCode lyx::LFUN_COPY_LABEL_AS_REF
+ * \var lyx::FuncCode lyx::LFUN_BRANCHES_RENAME
+ * \li Action: Rename all branches of a given name in a document.
+ * \li Syntax: branches-rename <OLDNAME> <NEWNAME>
+ * \li Params: <OLDNAME>: Current name of the branch to be renamed
+ *             <NEWNAME>: New name of the branch
+ * \li Origin: spitz, 9 Jul 2009
+ * \endvar
+ */
+               { LFUN_BRANCHES_RENAME, "branches-rename", Noop, Buffer },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BRANCH_ADD_INSERT
+ * \li Action: Create new branch and directly put the branch inset into
+               the document.
+ * \li Syntax: branch-add-insert [<NAME>]
+ * \li Params: <NAME>: Branch name. If it is not specified, you will be asked.
+ * \li Origin: sanda, 10 Jul 2009
+ * \endvar
+ */
+               { LFUN_BRANCH_ADD_INSERT, "branch-add-insert", Noop, Buffer },
+
+
+/*!
+ * \var lyx::FuncCode lyx::LFUN_LABEL_COPY_AS_REF
  * \li Action: Copies the label at the cursor as a cross-reference to be pasted elsewhere.
- * \li Syntax: copy-label-as-reference
+ * \li Syntax: copy-label-as-reference <LABEL>
+ * \li Params: <LABEL>: The label to copy (for multi-line math)
  * \li Origin: sts, 16 Nov 2008
  * \endvar
  */
-               { LFUN_COPY_LABEL_AS_REF, "copy-label-as-reference", ReadOnly | NoUpdate, Edit },
+               { LFUN_LABEL_COPY_AS_REFERENCE, "label-copy-as-reference",
+                       ReadOnly | NoUpdate | AtPoint, Edit },
 
 /*!
- * \var lyx::FuncCode lyx::LFUN_INSERT_LABEL_AS_REF
- * \li Action: Inserts the label as a cross-reference at the position of the cursor.
- * \li Syntax: insert-label-as-reference
+ * \var lyx::FuncCode lyx::LFUN_LABEL_INSERT_AS_REFERENCE
+ * \li Action: Inserts the label (in ToC pane) as a cross-reference at the position of the cursor.
+ * \li Syntax: label-insert-as-reference
  * \li Origin: vfr, 7 Apr 2009
  * \endvar
  */
-               { LFUN_INSERT_LABEL_AS_REF, "insert-label-as-reference", Noop, Edit},
+               { LFUN_LABEL_INSERT_AS_REFERENCE, "label-insert-as-reference", Noop, Edit},
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_ZOOM_IN
@@ -3298,23 +3756,32 @@ void LyXAction::init()
                { LFUN_BUFFER_ZOOM_OUT, "buffer-zoom-out", ReadOnly, Buffer },
 
 /*!
- * \var lyx::FuncCode lyx::LFUN_SECTION_SELECT
- * \li Action: Selects the whole section.
- * \li Notion: The cursor should be in a section heading 
-               before calling this lfun.
- * \li Syntax: section-select
- * \li Origin: vfr, 05 May 2009
+ * \var lyx::FuncCode lyx::LFUN_INSET_COPY_AS
+ * \li Action: Copies the inset to the clipboard as a certain type.
+ * \li Notion: Currently used only for InsetInfo where its content is copied as a text.
+ * \li Syntax: inset-copy-as
+ * \li Origin: vfr, 18 Apr 2010
  * \endvar
  */
-               { LFUN_SECTION_SELECT, "section-select", ReadOnly, Edit },
+               { LFUN_INSET_COPY_AS, "inset-copy-as", ReadOnly | NoUpdate | AtPoint, Edit },
+
+/*!
+ * \var lyx::FuncCode lyx::LFUN_ENVIRONMENT_SPLIT
+ * \li Action: Splits the current environment with a Separator.
+ * \li Syntax: environment-split [outer]
+ * \li Params: outer: If this is given, LyX will split the outermost environment in
+ *                    the current nesting hierarchy.
+ * \li Origin: spitz, 23 Dec 2012
+ * \endvar
+ */
+               { LFUN_ENVIRONMENT_SPLIT, "environment-split", Noop, Layout },
 
                { LFUN_NOACTION, "", Noop, Hidden }
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
        };
 
-       for (int i = 0; items[i].action != LFUN_NOACTION; ++i) {
+       for (int i = 0; items[i].action != LFUN_NOACTION; ++i)
                newFunc(items[i].action, items[i].name, items[i].attrib, items[i].type);
-       }
 
        init = true;
 }
@@ -3326,59 +3793,59 @@ LyXAction::LyXAction()
 }
 
 
-// Returns an action tag from a string.
 FuncRequest LyXAction::lookupFunc(string const & func) const
 {
        string const func2 = trim(func);
 
-       if (func2.empty()) {
+       if (func2.empty())
                return FuncRequest(LFUN_NOACTION);
-       }
 
        string cmd;
        string const arg = split(func2, cmd, ' ');
 
-       func_map::const_iterator fit = lyx_func_map.find(cmd);
+       FuncMap::const_iterator const fit = lyx_func_map.find(cmd);
 
-       return fit != lyx_func_map.end() ? FuncRequest(fit->second, arg) : FuncRequest(LFUN_UNKNOWN_ACTION);
+       return fit != lyx_func_map.end()
+                       ? FuncRequest(fit->second, arg)
+                       : FuncRequest(LFUN_UNKNOWN_ACTION);
 }
 
 
 string const LyXAction::getActionName(FuncCode action) const
 {
-       info_map::const_iterator const it = lyx_info_map.find(action);
+       InfoMap::const_iterator const it = lyx_info_map.find(action);
        return it != lyx_info_map.end() ? it->second.name : string();
 }
 
 
-LyXAction::func_type LyXAction::getActionType(FuncCode action) const
+LyXAction::FuncType LyXAction::getActionType(FuncCode action) const
 {
-       info_map::const_iterator const it = lyx_info_map.find(action);
+       InfoMap::const_iterator const it = lyx_info_map.find(action);
        return it != lyx_info_map.end() ? it->second.type : Hidden;
 }
 
 
 bool LyXAction::funcHasFlag(FuncCode action,
-                           LyXAction::func_attrib flag) const
+                           LyXAction::FuncAttribs flag) const
 {
-       info_map::const_iterator ici = lyx_info_map.find(action);
+       InfoMap::const_iterator ici = lyx_info_map.find(action);
 
        if (ici == lyx_info_map.end()) {
                LYXERR0("action: " << action << " is not known.");
-               LASSERT(false, /**/);
+               LASSERT(false, return false);
        }
 
        return ici->second.attrib & flag;
 }
 
 
-LyXAction::const_func_iterator LyXAction::func_begin() const
+LyXAction::const_iterator LyXAction::func_begin() const
 {
        return lyx_func_map.begin();
 }
 
 
-LyXAction::const_func_iterator LyXAction::func_end() const
+LyXAction::const_iterator LyXAction::func_end() const
 {
        return lyx_func_map.end();
 }