]> git.lyx.org Git - lyx.git/blobdiff - src/LyXAction.cpp
listerrors.lyx : Update a link.
[lyx.git] / src / LyXAction.cpp
index 8e5a6c6c80b46ea1bd41abc9eeec8691e0d55769..a171cd1a1e74e4963dd4d59ee833e32a06a7c242 100644 (file)
@@ -57,6 +57,8 @@ 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).
  */
 
 /*!
@@ -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[] = {
@@ -314,21 +317,13 @@ 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
  * \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 +360,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,16 +408,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[s]|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. \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: name of lfun used in toolbar \n
-                     buffer: "name"|"path"|"class"
+                     icon: icon of lfun used in toolbar \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
@@ -448,16 +453,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
+ * \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 <TYPE:Name>
- * \li Sample: flex-insert CharStyle:Code
+                     InsetLayout Name or InsetLayout <Flex:Name>. The Flex:
+                     prefix is optional.
+ * \li Sample: flex-insert Code
  * \endvar
  */
                { LFUN_FLEX_INSERT, "flex-insert", Noop, Edit },
@@ -474,9 +475,10 @@ 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
@@ -502,13 +504,14 @@ void LyXAction::init()
  */
                { 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.
@@ -574,16 +577,6 @@ void LyXAction::init()
  * \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,
@@ -606,6 +599,7 @@ void LyXAction::init()
 /*!
  * \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
@@ -870,7 +864,7 @@ void LyXAction::init()
  * \li Params: <DATA>: data is of the form
                        "<replace> \n
                         <search> \n
-                        <casesensitive> <matchword> <all> <forward>"
+                        <casesensitive> <matchword> <all> <forward> <findnext>"
  * \li Origin: Andre, Jan 7 2004
  * \endvar
  */
@@ -989,6 +983,39 @@ void LyXAction::init()
  * \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.
+ * \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.
+ * \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.
+ * \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_THESAURUS_ENTRY
  * \li Action: Look up thesaurus entries with respect to the word under the cursor.
@@ -1082,6 +1109,17 @@ void LyXAction::init()
  */
                { LFUN_INSET_SELECT_ALL, "inset-select-all", ReadOnly, Edit },
 
+/*!
+ * \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
+ * \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.
@@ -1148,13 +1186,13 @@ void LyXAction::init()
  * \li Action: Pastes text from the active clipboard.
  * \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".
@@ -1163,25 +1201,36 @@ 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 simple unformatted text from the active clipboard.
+ * \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.
@@ -1566,7 +1615,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
@@ -1712,9 +1761,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
  */
@@ -2006,25 +2054,6 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_OUTLINE_OUT, "outline-out", Noop, Edit },
-               
-/*!
- * \var lyx::FuncCode lyx::LFUN_OUTLINE_DRAGMOVE
- * \li Action: Moves the document section associated with the specified
-               heading to a specified location. Both the heading and the
-               target paragraph are specified by the paragraph ID numbers.
- * \li Notion: The heading is a paragraph with style Part/Chapter/Section/
-               etc. Id number of the paragraph is not the sequential number
-               seen on the screen, but an internal number that is unique
-               for all opened buffers (documents).
- * \li Syntax: outline-dragmove <PAR_ID_SECTION> <PAR_ID_DROP_POSITION>
- * \li Params: <PAR_ID_SECTION>: paragraph id of the section heading which
-                                 is to be moved. \n
-               <PAR_ID_DROP_POSITION>: the paragraph id where the section
-                                       will be moved to.
- * \li Origin: Rob Oakes, 22 June 2009
- * \endvar
- */
-               { LFUN_OUTLINE_DRAGMOVE, "outline-dragmove", Noop, Edit },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_EDIT
@@ -2036,43 +2065,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_INSET_MODIFY 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|longtabular-align-left|longtabular-align-center|
-                       longtabular-align-right|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.
@@ -2080,14 +2086,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).
@@ -2099,7 +2105,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
@@ -2120,8 +2126,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
@@ -2156,7 +2161,8 @@ 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
@@ -2175,12 +2181,32 @@ void LyXAction::init()
  * \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 Notion: This is currently implemented only for SVN.
  * \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
@@ -2236,7 +2262,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
  */
@@ -2287,8 +2313,8 @@ void LyXAction::init()
  * \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
@@ -2298,34 +2324,44 @@ 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.
+                        floats, graphics, include, index, info, label, 
+                        listings, newline, newpage, nomencl, note, phantom, 
+                        ref, space, tabular, vspace, wrap insets.
  * \li Syntax: inset-modify <INSET> <ARGS>
- * \li Params: See #LFUN_INSET_INSERT for further details.
- * \endvar
- */
-               { LFUN_INSET_MODIFY, "", Noop, Hidden },
-/*!
- * \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
+ * \li Syntax: inset-modify changetype <TYPE>
+ * \li Syntax: inset-modify tabular <FEATURE> [<ARG>]
+ * \li Params: Generally see #LFUN_INSET_INSERT for further details.\n
+               In case that <INSET> is "tabular" various math-environment features
+               are handled as well, e.g. add-vline-left/right for the Grid/Array environment.\n
+               <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|align-decimal|set-decimal-point|
+                       valign-top|valign-bottom|valign-middle|longtabular-align-left|
+                       longtabular-align-center|longtabular-align-right|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-multicolumn|set-special-multirow|
+                       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|set-tabular-width \n
+               <ARG>: additional argument for some commands, use debug mode to explore its values.
+ * \li Sample: inset-modify note Note Comment \n
+              inset-modify changetype Ovalbox
  * \endvar
  */
-               { LFUN_NEXT_INSET_MODIFY, "next-inset-modify", Noop, Edit },
+               { LFUN_INSET_MODIFY, "inset-modify", AtPoint, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_DIALOG_UPDATE
  * \li Action: Updates the values inside the dialog from the inset.
@@ -2340,12 +2376,12 @@ 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|
+                         listings|note|phantom|ref|space|tabular|vspace|wrap>.
  * \endvar
  */
                { LFUN_INSET_SETTINGS, "inset-settings", ReadOnly | AtPoint, Edit },
@@ -2363,16 +2399,35 @@ 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 10000.
+               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 delete-char-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.
@@ -2527,8 +2582,9 @@ void LyXAction::init()
  * \li Action: Toggles visibility of a given toolbar between on/off/auto.
  * \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
  */
@@ -2605,7 +2661,7 @@ void LyXAction::init()
  * \li Syntax: dialog-show <NAME> [<DATA>]
  * \li Params: <NAME>: aboutlyx|bibitem|bibtex|box|branch|changes|character|citation|\n
                compare|document|errorlist|ert|external|file|findreplace|findreplaceadv|float|\n
-               graphics|href|include|index|index_print|info|label|listings|log|mathdelimiter|\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
@@ -2762,23 +2818,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 expanded 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.
@@ -2855,6 +2925,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.
@@ -2876,7 +2956,7 @@ void LyXAction::init()
 /*!
  * \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),
@@ -2885,6 +2965,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
  */
@@ -2903,6 +2986,14 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_BUFFER_EXPORT_CUSTOM, "buffer-export-custom", ReadOnly, Buffer },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BUFFER_EXPORT_AS
+ * \li Action: Pops up a dialog for exporting the current buffer.
+ * \li Syntax: buffer-export-as
+ * \li Origin: tommaso, 6 Oct 2011
+ * \endvar
+ */
+               { LFUN_BUFFER_EXPORT_AS, "buffer-export-as", ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_PRINT
  * \li Action: Prints the current document.
@@ -2956,20 +3047,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/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
@@ -3234,8 +3323,8 @@ void LyXAction::init()
  * \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.
+                        events. See lyx -dbg for the current list of debug levels
+                        and their numbers.
  * \li Origin: sanda, 28 Dec 2009
  * \endvar
  */
@@ -3403,7 +3492,8 @@ 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_REF, "copy-label-as-reference",
+                       ReadOnly | NoUpdate | AtPoint, Edit },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_LABEL_INSERT_AS_REF
@@ -3435,24 +3525,21 @@ 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 },
 
                { 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;
 }
@@ -3464,42 +3551,42 @@ 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.");
@@ -3510,13 +3597,13 @@ bool LyXAction::funcHasFlag(FuncCode action,
 }
 
 
-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();
 }