]> git.lyx.org Git - lyx.git/blobdiff - src/LyXAction.cpp
Merge branch 'master' of git.lyx.org:lyx
[lyx.git] / src / LyXAction.cpp
index 01095ea3538eafde6eee9733d47e6d9e5ee7b067..3702810ba0cfd7e2d533253fef6661308bfcdeab 100644 (file)
@@ -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,6 +369,14 @@ 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.
@@ -405,9 +417,18 @@ void LyXAction::init()
                the work area.\n
                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
@@ -441,16 +462,12 @@ void LyXAction::init()
                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.\n
-               Name: This name must be defined either in your layout file
-                     or imported by some module. The definition is 
-                     InsetLayout <TYPE:Name>
- * \li Sample: flex-insert CharStyle:Code
+ * \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
@@ -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,7 +894,7 @@ 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
@@ -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,7 +925,7 @@ void LyXAction::init()
  * \li Origin: Tommaso, Nov 15 2007
  * \endvar
  */
-               { LFUN_WORD_FINDADV, "word-findadv", ReadOnly, Edit },
+               { 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.
@@ -892,7 +939,7 @@ 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, 
+ * \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
@@ -903,8 +950,8 @@ 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 
+               "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
@@ -928,12 +975,12 @@ 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 
+               "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 
+               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
@@ -961,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.
@@ -1025,8 +1127,8 @@ 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: lasgouttes, 16 Mar 2009
@@ -1035,8 +1137,8 @@ void LyXAction::init()
                { 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
@@ -1046,8 +1148,8 @@ void LyXAction::init()
                { 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: lasgouttes, 16 Mar 2009
@@ -1056,8 +1158,8 @@ void LyXAction::init()
                { 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
@@ -1066,9 +1168,32 @@ void LyXAction::init()
  */
                { 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
  */
@@ -1097,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
  */
@@ -1122,23 +1247,30 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_PASTE
  * \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 \n
+ * \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".
@@ -1147,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.
@@ -1230,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).
@@ -1317,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
@@ -1367,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
@@ -1377,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
@@ -1424,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.
@@ -1434,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.
@@ -1446,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.
@@ -1455,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.
@@ -1464,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
@@ -1529,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 },
@@ -1542,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
@@ -1601,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 
+                        (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
  */
@@ -1656,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
@@ -1677,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
  */
@@ -1827,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
@@ -1835,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
@@ -1845,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
@@ -1853,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
@@ -1863,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
@@ -1881,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.
@@ -1908,7 +2081,7 @@ void LyXAction::init()
                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
+               <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
@@ -1929,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
@@ -1978,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,
@@ -1988,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.
@@ -2030,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).
@@ -2049,7 +2202,7 @@ 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
@@ -2059,6 +2212,34 @@ void LyXAction::init()
  * \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.
@@ -2070,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
@@ -2106,12 +2286,52 @@ void LyXAction::init()
                         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.
+                <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
@@ -2123,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
@@ -2167,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
  */
@@ -2213,13 +2433,13 @@ void LyXAction::init()
  * \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
+ * \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
@@ -2229,38 +2449,56 @@ void LyXAction::init()
                pageref -- <page> \n
                vpageref -- on <page> \n
                vref -- <reference> on <page> \n
-               prettyref -- Formatted reference
+               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
@@ -2271,22 +2509,22 @@ 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.
  * \li Origin: lasgouttes, 19 Jul 2001
@@ -2294,16 +2532,43 @@ void LyXAction::init()
  */
                { 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.
@@ -2352,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
  */
@@ -2392,7 +2662,7 @@ 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
@@ -2448,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
  */
@@ -2485,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
@@ -2501,34 +2772,46 @@ 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|label|listings|log|mathdelimiter|\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
@@ -2592,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
  */
@@ -2601,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
  */
@@ -2610,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
  */
@@ -2619,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
  */
@@ -2628,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
  */
@@ -2646,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
@@ -2685,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).
  * \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
                        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.
+                       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.
@@ -2713,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
  */
@@ -2730,7 +3028,7 @@ 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
+               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
@@ -2777,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.
@@ -2786,10 +3094,19 @@ 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),
@@ -2798,6 +3115,9 @@ void LyXAction::init()
                         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
  */
@@ -2817,23 +3137,25 @@ void LyXAction::init()
  */
                { 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
+               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
@@ -2842,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.
@@ -2869,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
@@ -2908,7 +3228,7 @@ 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
+               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
@@ -2940,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.
@@ -2957,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.
@@ -2964,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
@@ -2980,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
@@ -3021,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
@@ -3067,7 +3426,7 @@ void LyXAction::init()
                to be executed (see e.g. #LFUN_COMMAND_SEQUENCE).
                \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>
@@ -3079,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
  */
@@ -3094,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.
@@ -3139,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.
@@ -3167,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
@@ -3187,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
@@ -3195,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.
@@ -3212,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
@@ -3238,9 +3630,20 @@ 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_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
@@ -3252,13 +3655,56 @@ 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_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
@@ -3268,16 +3714,17 @@ void LyXAction::init()
  * \li Origin: sts, 16 Nov 2008
  * \endvar
  */
-               { LFUN_LABEL_COPY_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_LABEL_INSERT_AS_REF
- * \li Action: Inserts the label as a cross-reference at the position of the cursor.
+ * \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_LABEL_INSERT_AS_REF, "label-insert-as-reference", Noop, Edit},
+               { LFUN_LABEL_INSERT_AS_REFERENCE, "label-insert-as-reference", Noop, Edit},
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_ZOOM_IN
@@ -3300,23 +3747,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;
 }
@@ -3328,59 +3784,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();
 }