Mercurial > octave
annotate libgui/src/m-editor/octave-qscintilla.cc @ 23236:4cd5f975d26c
automatically add a comment string when line breaking in line comments
* file-editor-tab.cc (handle_char_added): insert a comment string at the
beginning of a new line when breaking a comment line
* octave-qscintilla.cc: include headers of the used qscintilla lexers;
(get_style): new function providing the style at specific/current position;
(is_style_comment): new function for detecting lin or block comment styles;
* octave-qscintilla.h: new functions get_style and is_style_comment, new
enum for return values of is_style_comment
author | Torsten <mttl@mailbox.org> |
---|---|
date | Sat, 25 Feb 2017 21:13:35 +0100 |
parents | aaf20024db6f |
children | c763214a8260 |
rev | line source |
---|---|
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
1 /* |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
2 |
23219
3ac9f9ecfae5
maint: Update copyright dates.
John W. Eaton <jwe@octave.org>
parents:
23083
diff
changeset
|
3 Copyright (C) 2013-2017 Torsten |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
4 |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
5 This file is part of Octave. |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
6 |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
7 Octave is free software; you can redistribute it and/or modify it |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
8 under the terms of the GNU General Public License as published by |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
9 the Free Software Foundation; either version 3 of the License, or |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
10 (at your option) any later version. |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
11 |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
12 Octave is distributed in the hope that it will be useful, but |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
13 WITHOUT ANY WARRANTY; without even the implied warranty of |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
15 GNU General Public License for more details. |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
16 |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
17 You should have received a copy of the GNU General Public License |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
18 along with Octave; see the file COPYING. If not, see |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
19 <http://www.gnu.org/licenses/>. |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
20 |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
21 */ |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
22 |
16768 | 23 // Author: Torsten <ttl@justmail.de> |
24 | |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21578
diff
changeset
|
25 #if defined (HAVE_CONFIG_H) |
21301
40de9f8f23a6
Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents:
21203
diff
changeset
|
26 # include "config.h" |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
27 #endif |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
28 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21578
diff
changeset
|
29 #if defined (HAVE_QSCINTILLA) |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
30 |
23236
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
31 #include <Qsci/qscilexer.h> |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
32 |
23234
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
33 #if defined (HAVE_QSCI_QSCILEXEROCTAVE_H) |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
34 # define HAVE_LEXER_OCTAVE 1 |
23236
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
35 # include <Qsci/qscilexeroctave.h> |
23234
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
36 #elif defined (HAVE_QSCI_QSCILEXERMATLAB_H) |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
37 # define HAVE_LEXER_MATLAB 1 |
23236
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
38 # include <Qsci/qscilexermatlab.h> |
23234
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
39 #endif |
23236
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
40 #include <Qsci/qscilexercpp.h> |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
41 #include <Qsci/qscilexerbash.h> |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
42 #include <Qsci/qscilexerperl.h> |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
43 #include <Qsci/qscilexerbatch.h> |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
44 #include <Qsci/qscilexerdiff.h> |
23234
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
45 |
18656
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
46 #include <Qsci/qscicommandset.h> |
18560
26d15a57f45b
add menu entries and shortcuts for zoom functions in the editor (bug #41516)
Torsten <ttl@justmail.de>
parents:
18460
diff
changeset
|
47 #include <QShortcut> |
19002
00b1d60500bd
improved finding a function file for editing in gui (case 1 in bug #41509)
Torsten <ttl@justmail.de>
parents:
18954
diff
changeset
|
48 #include <QMessageBox> |
16735
cee305c91e91
show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents:
16733
diff
changeset
|
49 |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
50 #include "octave-qscintilla.h" |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
51 #include "file-editor-tab.h" |
18656
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
52 #include "shortcut-manager.h" |
23234
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
53 #include "resource-manager.h" |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
54 |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
55 octave_qscintilla::octave_qscintilla (QWidget *p) |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17669
diff
changeset
|
56 : QsciScintilla (p) |
18560
26d15a57f45b
add menu entries and shortcuts for zoom functions in the editor (bug #41516)
Torsten <ttl@justmail.de>
parents:
18460
diff
changeset
|
57 { |
18689
fac35875f6eb
update enabled status of undo/redo actions in the editor
Torsten <ttl@justmail.de>
parents:
18687
diff
changeset
|
58 connect (this, SIGNAL (textChanged ()), this, SLOT (text_changed ())); |
fac35875f6eb
update enabled status of undo/redo actions in the editor
Torsten <ttl@justmail.de>
parents:
18687
diff
changeset
|
59 |
18656
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
60 // clear scintilla edit shortcuts that are handled by the editor |
18675
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
61 QsciCommandSet *cmd_set = standardCommands (); |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
62 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21578
diff
changeset
|
63 #if defined (HAVE_QSCI_VERSION_2_6_0) |
18675
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
64 // find () was added in QScintilla 2.6 |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
65 cmd_set->find (QsciCommand::SelectionCopy)->setKey (0); |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
66 cmd_set->find (QsciCommand::SelectionCut)->setKey (0); |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
67 cmd_set->find (QsciCommand::Paste)->setKey (0); |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
68 cmd_set->find (QsciCommand::SelectAll)->setKey (0); |
18656
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
69 cmd_set->find (QsciCommand::SelectionDuplicate)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
70 cmd_set->find (QsciCommand::LineTranspose)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
71 cmd_set->find (QsciCommand::Undo)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
72 cmd_set->find (QsciCommand::Redo)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
73 cmd_set->find (QsciCommand::SelectionUpperCase)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
74 cmd_set->find (QsciCommand::SelectionLowerCase)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
75 cmd_set->find (QsciCommand::ZoomIn)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
76 cmd_set->find (QsciCommand::ZoomOut)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
77 cmd_set->find (QsciCommand::DeleteWordLeft)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
78 cmd_set->find (QsciCommand::DeleteWordRight)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
79 cmd_set->find (QsciCommand::DeleteLineLeft)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
80 cmd_set->find (QsciCommand::DeleteLineRight)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
81 cmd_set->find (QsciCommand::LineDelete)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
82 cmd_set->find (QsciCommand::LineCut)->setKey (0); |
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
83 cmd_set->find (QsciCommand::LineCopy)->setKey (0); |
18675
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
84 #else |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
85 // find commands via its default key (tricky way without find ()) |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
86 QList< QsciCommand * > cmd_list = cmd_set->commands (); |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
87 for (int i = 0; i < cmd_list.length (); i++) |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
88 { |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
89 int cmd_key = cmd_list.at (i)->key (); |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
90 switch (cmd_key) |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
91 { |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
92 case Qt::Key_C | Qt::CTRL : // SelectionCopy |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
93 case Qt::Key_X | Qt::CTRL : // SelectionCut |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
94 case Qt::Key_V | Qt::CTRL : // Paste |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
95 case Qt::Key_A | Qt::CTRL : // SelectAll |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
96 case Qt::Key_D | Qt::CTRL : // SelectionDuplicate |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
97 case Qt::Key_T | Qt::CTRL : // LineTranspose |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
98 case Qt::Key_Z | Qt::CTRL : // Undo |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
99 case Qt::Key_Y | Qt::CTRL : // Redo |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
100 case Qt::Key_Z | Qt::CTRL | Qt::SHIFT : // Redo |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
101 case Qt::Key_U | Qt::CTRL : // SelectionLowerCase |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
102 case Qt::Key_U | Qt::CTRL | Qt::SHIFT : // SelectionUpperCase |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
103 case Qt::Key_Plus | Qt::CTRL : // ZoomIn |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
104 case Qt::Key_Minus | Qt::CTRL : // ZoomOut |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
105 case Qt::Key_Backspace | Qt::CTRL | Qt::SHIFT : // DeleteLineLeft |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
106 case Qt::Key_Delete | Qt::CTRL | Qt::SHIFT : // DeleteLineRight |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
107 case Qt::Key_K | Qt::META : // DeleteLineRight |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
108 case Qt::Key_Backspace | Qt::CTRL : // DeleteWordLeft |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
109 case Qt::Key_Delete | Qt::CTRL : // DeleteWordRight |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
110 case Qt::Key_L | Qt::CTRL | Qt::SHIFT : // LineDelete |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
111 case Qt::Key_L | Qt::CTRL : // LineCut |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
112 case Qt::Key_T | Qt::CTRL | Qt::SHIFT : // LineCopy |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
113 cmd_list.at (i)->setKey (0); |
18675
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
114 } |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
115 } |
c199304dfb2a
handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents:
18656
diff
changeset
|
116 #endif |
18954
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
117 |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
118 #if defined (Q_OS_MAC) |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
119 // Octave interprets Cmd key as Meta whereas Qscintilla interprets it |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
120 // as Ctrl. We thus invert Meta/Ctrl in Qscintilla's shortcuts list. |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
121 QList< QsciCommand * > cmd_list_mac = cmd_set->commands (); |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
122 for (int i = 0; i < cmd_list_mac.length (); i++) |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
123 { |
19595
be7ac98fab43
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19426
diff
changeset
|
124 // Primary key |
18954
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
125 int key = cmd_list_mac.at (i)->key (); |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
126 |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
127 if (static_cast<int> (key | Qt::META) == key && |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
128 static_cast<int> (key | Qt::CTRL) != key) |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
129 key = (key ^ Qt::META) | Qt::CTRL; |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
130 else if (static_cast<int> (key | Qt::CTRL) == key) |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
131 key = (key ^ Qt::CTRL) | Qt::META; |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
132 |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
133 cmd_list_mac.at (i)->setKey (key); |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
134 |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
135 // Alternate key |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
136 key = cmd_list_mac.at (i)->alternateKey (); |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
137 |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
138 if (static_cast<int> (key | Qt::META) == key && |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
139 static_cast<int> (key | Qt::CTRL) != key) |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
140 key = (key ^ Qt::META) | Qt::CTRL; |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
141 else if (static_cast<int> (key | Qt::CTRL) == key) |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
142 key = (key ^ Qt::CTRL) | Qt::META; |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
143 |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
144 cmd_list_mac.at (i)->setAlternateKey (key); |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
145 } |
c6b89c4a9e63
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents:
18767
diff
changeset
|
146 #endif |
20986
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
147 |
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
148 // init state of undo/redo action for this tab |
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
149 emit status_update (isUndoAvailable (), isRedoAvailable ()); |
18560
26d15a57f45b
add menu entries and shortcuts for zoom functions in the editor (bug #41516)
Torsten <ttl@justmail.de>
parents:
18460
diff
changeset
|
150 } |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
151 |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
152 octave_qscintilla::~octave_qscintilla () |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
153 { } |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
154 |
17627
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
155 void |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17669
diff
changeset
|
156 octave_qscintilla::get_global_textcursor_pos (QPoint *global_pos, |
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17669
diff
changeset
|
157 QPoint *local_pos) |
17627
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
158 { |
18656
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
159 long position = SendScintilla (SCI_GETCURRENTPOS); |
17627
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
160 long point_x = SendScintilla |
18656
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
161 (SCI_POINTXFROMPOSITION,0,position); |
17627
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
162 long point_y = SendScintilla |
18656
1b289f45187f
add some qscintilla actions to the menu and to the shortcut manager
Torsten <ttl@justmail.de>
parents:
18560
diff
changeset
|
163 (SCI_POINTYFROMPOSITION,0,position); |
17627
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
164 *local_pos = QPoint (point_x,point_y); // local cursor position |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
165 *global_pos = mapToGlobal (*local_pos); // global position of cursor |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
166 } |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
167 |
17628
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
168 // determine the actual word and whether we are in an octave or matlab script |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
169 bool |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
170 octave_qscintilla::get_actual_word () |
17627
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
171 { |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
172 QPoint global_pos, local_pos; |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
173 get_global_textcursor_pos (&global_pos, &local_pos); |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
174 _word_at_cursor = wordAtPoint (local_pos); |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
175 QString lexer_name = lexer ()->lexer (); |
17628
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
176 return ((lexer_name == "octave" || lexer_name == "matlab") |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20277
diff
changeset
|
177 && ! _word_at_cursor.isEmpty ()); |
17628
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
178 } |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
179 |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
180 // call documentation or help on the current word |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
181 void |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
182 octave_qscintilla::context_help_doc (bool documentation) |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
183 { |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
184 if (get_actual_word ()) |
17627
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
185 contextmenu_help_doc (documentation); |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
186 } |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
187 |
17628
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
188 // call edit the function related to the current word |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
189 void |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
190 octave_qscintilla::context_edit () |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
191 { |
17655
b4783277bd11
*octave-qscintilla.cc: fix edit function at cursor by shortcut Ctrl-E
Torsten <ttl@justmail.de>
parents:
17635
diff
changeset
|
192 if (get_actual_word ()) |
17628
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
193 contextmenu_edit (true); |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
194 } |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
195 |
17635
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
196 // call edit the function related to the current word |
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
197 void |
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
198 octave_qscintilla::context_run () |
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
199 { |
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
200 if (hasSelectedText ()) |
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
201 contextmenu_run (true); |
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
202 } |
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
203 |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
204 // context menu requested |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
205 void |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
206 octave_qscintilla::contextMenuEvent (QContextMenuEvent *e) |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
207 { |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21578
diff
changeset
|
208 #if defined (HAVE_QSCI_VERSION_2_6_0) |
18687
99e26cb0f87f
use the actions from the editor for the context menu
Torsten <ttl@justmail.de>
parents:
18684
diff
changeset
|
209 QPoint global_pos, local_pos; // the menu's position |
18678
6113e0c6920b
maint: Clean up extra spaces before/after parentheses.
Rik <rik@octave.org>
parents:
18656
diff
changeset
|
210 QMenu *context_menu = createStandardContextMenu (); // standard menu |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
211 |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
212 bool in_left_margin = false; |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
213 |
18687
99e26cb0f87f
use the actions from the editor for the context menu
Torsten <ttl@justmail.de>
parents:
18684
diff
changeset
|
214 // determine position depending on mouse or keyboard event |
16735
cee305c91e91
show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents:
16733
diff
changeset
|
215 if (e->reason () == QContextMenuEvent::Mouse) |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17669
diff
changeset
|
216 { |
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17669
diff
changeset
|
217 // context menu by mouse |
16735
cee305c91e91
show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents:
16733
diff
changeset
|
218 global_pos = e->globalPos (); // global mouse position |
cee305c91e91
show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents:
16733
diff
changeset
|
219 local_pos = e->pos (); // local mouse position |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
220 if (e->x () < marginWidth (1) + marginWidth (2)) |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
221 in_left_margin = true; |
16735
cee305c91e91
show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents:
16733
diff
changeset
|
222 } |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
223 else |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17669
diff
changeset
|
224 { |
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17669
diff
changeset
|
225 // context menu by keyboard or other: get point of text cursor |
17627
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
226 get_global_textcursor_pos (&global_pos, &local_pos); |
16735
cee305c91e91
show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents:
16733
diff
changeset
|
227 QRect editor_rect = geometry (); // editor rect mapped to global |
cee305c91e91
show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents:
16733
diff
changeset
|
228 editor_rect.moveTopLeft |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17669
diff
changeset
|
229 (parentWidget ()->mapToGlobal (editor_rect.topLeft ())); |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20277
diff
changeset
|
230 if (! editor_rect.contains (global_pos)) // is cursor outside editor? |
16735
cee305c91e91
show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents:
16733
diff
changeset
|
231 global_pos = editor_rect.topLeft (); // yes, take top left corner |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
232 } |
16735
cee305c91e91
show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents:
16733
diff
changeset
|
233 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21578
diff
changeset
|
234 #if defined (HAVE_QSCI_VERSION_2_6_0) |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
235 if (! in_left_margin) |
21371
dc3252099232
Allow GUI build with QScintilla 2.4 (bug #47226).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21301
diff
changeset
|
236 #endif |
16735
cee305c91e91
show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents:
16733
diff
changeset
|
237 { |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
238 // fill context menu with editor's standard actions |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
239 emit create_context_menu_signal (context_menu); |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
240 |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
241 // additional custom entries of the context menu |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
242 context_menu->addSeparator (); // separator before custom entries |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
243 |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
244 // help menu: get the position of the mouse or the text cursor |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
245 // (only for octave files) |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
246 QString lexer_name = lexer ()->lexer (); |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
247 if (lexer_name == "octave" || lexer_name == "matlab") |
17635
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
248 { |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
249 _word_at_cursor = wordAtPoint (local_pos); |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
250 if (! _word_at_cursor.isEmpty ()) |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
251 { |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
252 context_menu->addAction (tr ("Help on") + " " + _word_at_cursor, |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
253 this, SLOT (contextmenu_help (bool))); |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
254 context_menu->addAction (tr ("Documentation on") |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
255 + " " + _word_at_cursor, |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
256 this, SLOT (contextmenu_doc (bool))); |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
257 context_menu->addAction (tr ("Edit") + " " + _word_at_cursor, |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
258 this, SLOT (contextmenu_edit (bool))); |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
259 } |
17635
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
260 } |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
261 } |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21578
diff
changeset
|
262 #if defined (HAVE_QSCI_VERSION_2_6_0) |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
263 else |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
264 { |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
265 // remove all standard actions from scintilla |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
266 QList<QAction *> all_actions = context_menu->actions (); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
267 QAction* a; |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
268 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
269 foreach (a, all_actions) |
23223
4b642b593ec2
maint: Indent foreach blocks in Qt GUI code for readability.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
270 context_menu->removeAction (a); |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
271 |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
272 a = context_menu->addAction (tr ("dbstop if ..."), this, |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
273 SLOT (contextmenu_break_condition (bool))); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
274 a->setData (local_pos); |
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
275 } |
21371
dc3252099232
Allow GUI build with QScintilla 2.4 (bug #47226).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21301
diff
changeset
|
276 #endif |
16735
cee305c91e91
show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents:
16733
diff
changeset
|
277 |
cee305c91e91
show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents:
16733
diff
changeset
|
278 // finaly show the menu |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
279 context_menu->exec (global_pos); |
20277
48d9001bdee3
Avoid HAVE_ macros in header file.
John W. Eaton <jwe@octave.org>
parents:
19697
diff
changeset
|
280 #endif |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
281 } |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
282 |
17627
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
283 // handle the menu entry for calling help or doc |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
284 void |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
285 octave_qscintilla::contextmenu_doc (bool) |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
286 { |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
287 contextmenu_help_doc (true); |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
288 } |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
289 void |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
290 octave_qscintilla::contextmenu_help (bool) |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
291 { |
17627
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
292 contextmenu_help_doc (false); |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
293 } |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
294 |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
295 // common function with flag for documentation |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
296 void |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
297 octave_qscintilla::contextmenu_help_doc (bool documentation) |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
298 { |
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
299 if (documentation) |
19606
3156773fcc80
open a doc page from editor directly without command window
Torsten <ttl@justmail.de>
parents:
19595
diff
changeset
|
300 emit show_doc_signal (_word_at_cursor); |
17627
811019b9ef57
Add help and documentation on actual keyword to the editor menu
Torsten <ttl@justmail.de>
parents:
16768
diff
changeset
|
301 else |
19606
3156773fcc80
open a doc page from editor directly without command window
Torsten <ttl@justmail.de>
parents:
19595
diff
changeset
|
302 emit execute_command_in_terminal_signal ("help " + _word_at_cursor); |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
303 } |
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
304 |
17628
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
305 void |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
306 octave_qscintilla::contextmenu_edit (bool) |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
307 { |
19004
e87e65bc71ae
improved finding a function file for editing in gui (bug #41509)
Torsten <ttl@justmail.de>
parents:
19002
diff
changeset
|
308 emit context_menu_edit_signal (_word_at_cursor); |
17628
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
309 } |
99ffa521ecec
Add possibility to edit the function related to the actual keyword in editor
Torsten <ttl@justmail.de>
parents:
17627
diff
changeset
|
310 |
17635
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
311 void |
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
312 octave_qscintilla::contextmenu_run (bool) |
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
313 { |
23070
bef714f45999
maint: Use space after function name/before parenthesis in libgui.
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
314 QStringList commands = selectedText ().split (QRegExp ("[\r\n]"), |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17669
diff
changeset
|
315 QString::SkipEmptyParts); |
18678
6113e0c6920b
maint: Clean up extra spaces before/after parentheses.
Rik <rik@octave.org>
parents:
18656
diff
changeset
|
316 for (int i = 0; i < commands.size (); i++) |
17669
b7670c05731b
*octave-qscintilla.cc(contextmenu_run): split selection into single commands
Torsten <ttl@justmail.de>
parents:
17655
diff
changeset
|
317 emit execute_command_in_terminal_signal (commands.at (i)); |
17635
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
318 } |
7945344506ae
Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents:
17628
diff
changeset
|
319 |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
320 // wrappers for dbstop related context menu items |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
321 |
21578
683a1beee538
maint: Use "FIXME:" for all code blocks needing further attention.
Rik <rik@octave.org>
parents:
21371
diff
changeset
|
322 // FIXME: Why can't the data be sent as the argument to the function??? |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
323 void |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
324 octave_qscintilla::contextmenu_break_condition (bool) |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
325 { |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21578
diff
changeset
|
326 #if defined (HAVE_QSCI_VERSION_2_6_0) |
23070
bef714f45999
maint: Use space after function name/before parenthesis in libgui.
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
327 QAction *action = qobject_cast<QAction *>(sender ()); |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
328 QPoint local_pos = action->data ().value<QPoint> (); |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
329 |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
330 // pick point just right of margins, so lineAt doesn't give -1 |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
331 int margins = marginWidth (1) + marginWidth (2) + marginWidth (3); |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
332 local_pos = QPoint (margins + 1, local_pos.y ()); |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
333 |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
334 emit context_menu_break_condition_signal (lineAt (local_pos)); |
21371
dc3252099232
Allow GUI build with QScintilla 2.4 (bug #47226).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21301
diff
changeset
|
335 #endif |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
336 } |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
337 |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
338 void |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
339 octave_qscintilla::contextmenu_break_once (const QPoint& local_pos) |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
340 { |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21578
diff
changeset
|
341 #if defined (HAVE_QSCI_VERSION_2_6_0) |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
342 emit context_menu_break_once (lineAt (local_pos)); |
21371
dc3252099232
Allow GUI build with QScintilla 2.4 (bug #47226).
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21301
diff
changeset
|
343 #endif |
21158
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
344 } |
65827e9cccb8
Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20986
diff
changeset
|
345 |
18684
86eca5d178a6
disable some global shortcuts when editor gets focus to prevent conflicts
Torsten <ttl@justmail.de>
parents:
18675
diff
changeset
|
346 void |
18689
fac35875f6eb
update enabled status of undo/redo actions in the editor
Torsten <ttl@justmail.de>
parents:
18687
diff
changeset
|
347 octave_qscintilla::text_changed () |
fac35875f6eb
update enabled status of undo/redo actions in the editor
Torsten <ttl@justmail.de>
parents:
18687
diff
changeset
|
348 { |
fac35875f6eb
update enabled status of undo/redo actions in the editor
Torsten <ttl@justmail.de>
parents:
18687
diff
changeset
|
349 emit status_update (isUndoAvailable (), isRedoAvailable ()); |
fac35875f6eb
update enabled status of undo/redo actions in the editor
Torsten <ttl@justmail.de>
parents:
18687
diff
changeset
|
350 } |
fac35875f6eb
update enabled status of undo/redo actions in the editor
Torsten <ttl@justmail.de>
parents:
18687
diff
changeset
|
351 |
20986
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
352 // when edit area gets focus update information on undo/redo actions |
23070
bef714f45999
maint: Use space after function name/before parenthesis in libgui.
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
353 void octave_qscintilla::focusInEvent (QFocusEvent *focusEvent) |
20986
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
354 { |
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
355 emit status_update (isUndoAvailable (), isRedoAvailable ()); |
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
356 |
23070
bef714f45999
maint: Use space after function name/before parenthesis in libgui.
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
357 QsciScintilla::focusInEvent (focusEvent); |
20986
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
358 } |
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
359 |
23234
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
360 // Function returning the comment string of the current lexer |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
361 QString |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
362 octave_qscintilla::comment_string () |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
363 { |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
364 int lexer = SendScintilla (SCI_GETLEXER); |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
365 |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
366 switch (lexer) |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
367 { |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
368 #if defined (HAVE_LEXER_MATLAB) |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
369 case SCLEX_MATLAB: |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
370 #if defined (HAVE_LEXER_OCTAVE) |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
371 case SCLEX_OCTAVE: |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
372 #endif |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
373 { |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
374 QSettings *settings = resource_manager::get_settings (); |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
375 int comment_index |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
376 = settings->value ("editor/octave_comment_string", 0).toInt (); |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
377 if (comment_index == 1) |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
378 return QString ("#"); |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
379 else if (comment_index == 2) |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
380 return QString ("%"); |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
381 else |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
382 return QString ("##"); // default and for index 0 |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
383 } |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
384 #endif |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
385 |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
386 case SCLEX_PERL: |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
387 case SCLEX_BASH: |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
388 case SCLEX_DIFF: |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
389 return QString ("#"); |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
390 |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
391 case SCLEX_CPP: |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
392 return QString ("//"); |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
393 |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
394 case SCLEX_BATCH: |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
395 return QString ("REM "); |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
396 } |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
397 |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
398 return QString ("%"); // should never happen |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
399 } |
aaf20024db6f
function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents:
23230
diff
changeset
|
400 |
23190
4a2c42792d6c
highlight all occurrences of a selected word in the editor (bug #41470)
Torsten <mttl@mailbox.org>
parents:
23084
diff
changeset
|
401 // helper function for clearing all indicators of a specific style |
4a2c42792d6c
highlight all occurrences of a selected word in the editor (bug #41470)
Torsten <mttl@mailbox.org>
parents:
23084
diff
changeset
|
402 void |
4a2c42792d6c
highlight all occurrences of a selected word in the editor (bug #41470)
Torsten <mttl@mailbox.org>
parents:
23084
diff
changeset
|
403 octave_qscintilla::clear_indicator (int indicator_style) |
4a2c42792d6c
highlight all occurrences of a selected word in the editor (bug #41470)
Torsten <mttl@mailbox.org>
parents:
23084
diff
changeset
|
404 { |
4a2c42792d6c
highlight all occurrences of a selected word in the editor (bug #41470)
Torsten <mttl@mailbox.org>
parents:
23084
diff
changeset
|
405 int end_pos = text ().length (); |
4a2c42792d6c
highlight all occurrences of a selected word in the editor (bug #41470)
Torsten <mttl@mailbox.org>
parents:
23084
diff
changeset
|
406 int end_line, end_col; |
4a2c42792d6c
highlight all occurrences of a selected word in the editor (bug #41470)
Torsten <mttl@mailbox.org>
parents:
23084
diff
changeset
|
407 lineIndexFromPosition (end_pos, &end_line, &end_col); |
4a2c42792d6c
highlight all occurrences of a selected word in the editor (bug #41470)
Torsten <mttl@mailbox.org>
parents:
23084
diff
changeset
|
408 clearIndicatorRange (0, 0, end_line, end_col, indicator_style); |
20986
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
409 } |
00835323fb44
prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents:
20955
diff
changeset
|
410 |
23236
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
411 // provide the style at a specific position |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
412 int |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
413 octave_qscintilla::get_style (int pos) |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
414 { |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
415 int position; |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
416 if (pos < 0) |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
417 // The positition has to be reduced by 2 for getting the real style (?) |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
418 position = SendScintilla (QsciScintillaBase::SCI_GETCURRENTPOS) - 2; |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
419 else |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
420 position = pos; |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
421 |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
422 return SendScintilla (QsciScintillaBase::SCI_GETSTYLEAT, position); |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
423 } |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
424 |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
425 // Is a specific cursor position in a line or block comment? |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
426 int |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
427 octave_qscintilla::is_style_comment (int pos) |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
428 { |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
429 int lexer = SendScintilla (QsciScintillaBase::SCI_GETLEXER); |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
430 int style = get_style (pos); |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
431 |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
432 switch (lexer) |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
433 { |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
434 case SCLEX_CPP: |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
435 return (ST_LINE_COMMENT * ( |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
436 style == QsciLexerCPP::CommentLine |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
437 || style == QsciLexerCPP::CommentLineDoc) |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
438 + ST_BLOCK_COMMENT * ( |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
439 style == QsciLexerCPP::Comment |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
440 || style == QsciLexerCPP::CommentDoc |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
441 || style == QsciLexerCPP::CommentDocKeyword |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
442 || style == QsciLexerCPP::CommentDocKeywordError) |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
443 ); |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
444 |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
445 #if defined (HAVE_LEXER_MATLAB) |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
446 case SCLEX_MATLAB: |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
447 return (ST_LINE_COMMENT * (style == QsciLexerMatlab::Comment)); |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
448 #endif |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
449 #if defined (HAVE_LEXER_OCTAVE) |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
450 case SCLEX_OCTAVE: |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
451 return (ST_LINE_COMMENT * (style == QsciLexerOctave::Comment)); |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
452 #endif |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
453 |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
454 case SCLEX_PERL: |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
455 return (ST_LINE_COMMENT * (style == QsciLexerPerl::Comment)); |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
456 |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
457 case SCLEX_BATCH: |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
458 return (ST_LINE_COMMENT * (style == QsciLexerBatch::Comment)); |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
459 |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
460 case SCLEX_DIFF: |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
461 return (ST_LINE_COMMENT * (style == QsciLexerDiff::Comment)); |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
462 |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
463 case SCLEX_BASH: |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
464 return (ST_LINE_COMMENT * (style == QsciLexerBash::Comment)); |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
465 |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
466 } |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
467 |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
468 return ST_NONE; |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
469 } |
4cd5f975d26c
automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents:
23234
diff
changeset
|
470 |
23230
f7fdc9ef3971
improve line breaking in the editor
Torsten <mttl@mailbox.org>
parents:
23223
diff
changeset
|
471 // Function returning the true cursor position where the tab length |
f7fdc9ef3971
improve line breaking in the editor
Torsten <mttl@mailbox.org>
parents:
23223
diff
changeset
|
472 // is taken into account. |
f7fdc9ef3971
improve line breaking in the editor
Torsten <mttl@mailbox.org>
parents:
23223
diff
changeset
|
473 void |
f7fdc9ef3971
improve line breaking in the editor
Torsten <mttl@mailbox.org>
parents:
23223
diff
changeset
|
474 octave_qscintilla::get_current_position (int *pos, int *line, int *col) |
f7fdc9ef3971
improve line breaking in the editor
Torsten <mttl@mailbox.org>
parents:
23223
diff
changeset
|
475 { |
f7fdc9ef3971
improve line breaking in the editor
Torsten <mttl@mailbox.org>
parents:
23223
diff
changeset
|
476 *pos = SendScintilla (QsciScintillaBase::SCI_GETCURRENTPOS); |
f7fdc9ef3971
improve line breaking in the editor
Torsten <mttl@mailbox.org>
parents:
23223
diff
changeset
|
477 *line = SendScintilla (QsciScintillaBase::SCI_LINEFROMPOSITION, *pos); |
f7fdc9ef3971
improve line breaking in the editor
Torsten <mttl@mailbox.org>
parents:
23223
diff
changeset
|
478 *col = SendScintilla (QsciScintillaBase::SCI_GETCOLUMN, *pos); |
f7fdc9ef3971
improve line breaking in the editor
Torsten <mttl@mailbox.org>
parents:
23223
diff
changeset
|
479 } |
16731
01d523d5f796
add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff
changeset
|
480 #endif |