annotate libgui/src/m-editor/octave-qscintilla.cc @ 33634:4a70f390c85e default tip @

maint: Merge stable to default.
author Markus Mützel <markus.muetzel@gmx.de>
date Tue, 28 May 2024 15:25:54 +0200
parents 7f18c537e101
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ////////////////////////////////////////////////////////////////////////
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 //
32632
2e484f9f1f18 maint: update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 31997
diff changeset
3 // Copyright (C) 2013-2024 The Octave Project Developers
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
4 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 // See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 // distribution or <https://octave.org/copyright/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
7 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
8 // This file is part of Octave.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
9 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
10 // Octave is free software: you can redistribute it and/or modify it
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
11 // under the terms of the GNU General Public License as published by
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
12 // the Free Software Foundation, either version 3 of the License, or
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
13 // (at your option) any later version.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
14 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
15 // Octave is distributed in the hope that it will be useful, but
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
18 // GNU General Public License for more details.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
19 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
20 // You should have received a copy of the GNU General Public License
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
21 // along with Octave; see the file COPYING. If not, see
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
22 // <https://www.gnu.org/licenses/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ////////////////////////////////////////////////////////////////////////
16731
01d523d5f796 add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff changeset
25
21724
aba2e6293dd8 use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents: 21578
diff changeset
26 #if defined (HAVE_CONFIG_H)
21301
40de9f8f23a6 Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents: 21203
diff changeset
27 # 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
28 #endif
01d523d5f796 add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff changeset
29
21724
aba2e6293dd8 use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents: 21578
diff changeset
30 #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
31
23236
4cd5f975d26c automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents: 23234
diff changeset
32 #include <Qsci/qscilexer.h>
4cd5f975d26c automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents: 23234
diff changeset
33
27556
410622ac120f improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27461
diff changeset
34 #include <QDir>
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
35 #include <QKeySequence>
27556
410622ac120f improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27461
diff changeset
36 #include <QMessageBox>
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
37 #include <QMimeData>
31690
1a1f47f17ed4 eliminate resource_manager class
John W. Eaton <jwe@octave.org>
parents: 31649
diff changeset
38 #include <QPointer>
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
39 #include <QRegularExpression>
31690
1a1f47f17ed4 eliminate resource_manager class
John W. Eaton <jwe@octave.org>
parents: 31649
diff changeset
40 #include <QTemporaryFile>
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
41 #include <QToolTip>
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
42 #include <QVBoxLayout>
23234
aaf20024db6f function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents: 23230
diff changeset
43 #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
44 # 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
45 # 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
46 #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
47 # 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
48 # 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
49 #endif
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
50 #include <Qsci/qscicommandset.h>
23236
4cd5f975d26c automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents: 23234
diff changeset
51 #include <Qsci/qscilexerbash.h>
4cd5f975d26c automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents: 23234
diff changeset
52 #include <Qsci/qscilexerbatch.h>
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
53 #include <Qsci/qscilexercpp.h>
23236
4cd5f975d26c automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents: 23234
diff changeset
54 #include <Qsci/qscilexerdiff.h>
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
55 #include <Qsci/qscilexerperl.h>
24172
90903d915625 improve handling of selection markers in editor
John W. Eaton <jwe@octave.org>
parents: 24171
diff changeset
56
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
57 #include "file-editor-tab.h"
27560
3fcc650de22f split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents: 27556
diff changeset
58 #include "gui-preferences-ed.h"
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31354
diff changeset
59 #include "gui-settings.h"
27412
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
60 // FIXME: hardwired marker numbers?
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
61 #include "marker.h"
da1f59fe04b3 try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents: 27276
diff changeset
62 #include "octave-qscintilla.h"
29613
9367cba2a6d5 allow most dock widgets to be used from command line
John W. Eaton <jwe@octave.org>
parents: 29572
diff changeset
63 #include "workspace-model.h"
16735
cee305c91e91 show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents: 16733
diff changeset
64
27556
410622ac120f improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27461
diff changeset
65 #include "builtin-defun-decls.h"
410622ac120f improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27461
diff changeset
66 #include "cmd-edit.h"
410622ac120f improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27461
diff changeset
67 #include "interpreter-private.h"
410622ac120f improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27461
diff changeset
68 #include "interpreter.h"
31690
1a1f47f17ed4 eliminate resource_manager class
John W. Eaton <jwe@octave.org>
parents: 31649
diff changeset
69 #include "oct-env.h"
24475
8cb985e362f3 Allow uncommenting with any kind of comment (bug #52695):
Torsten <mttl@mailbox.org>
parents: 24232
diff changeset
70
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23807
diff changeset
71 // Return true if CANDIDATE is a "closing" that matches OPENING,
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23807
diff changeset
72 // such as "end" or "endif" for "if", or "catch" for "try".
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23807
diff changeset
73 // Used for testing the last word of an "if" etc. line,
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23807
diff changeset
74 // or the first word of the following line.
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24593
diff changeset
75
31646
c6d54dd31a7e maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents: 31354
diff changeset
76 OCTAVE_BEGIN_NAMESPACE(octave)
c6d54dd31a7e maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents: 31354
diff changeset
77
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
78 static bool
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
79 is_end (const QString& candidate, const QString& opening)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
80 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
81 bool retval = false;
27101
097774bed4ed move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 26634
diff changeset
82
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
83 if (opening == "do") // The only one that can't be ended by "end"
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
84 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
85 if (candidate == "until")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
86 retval = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
87 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
88 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
89 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
90 if (candidate == "end")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
91 retval = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
92 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
93 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
94 if (opening == "try")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
95 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
96 if (candidate == "catch" || candidate == "end_try_catch")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
97 retval = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
98 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
99 else if (opening == "unwind_protect")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
100 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
101 if (candidate == "unwind_protect_cleanup"
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
102 || candidate == "end_unwind_protect")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
103 retval = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
104 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
105 else if (candidate == "end" + opening)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
106 retval = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
107 else if (opening == "if" && candidate == "else")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
108 retval = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
109 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
110 }
27101
097774bed4ed move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 26634
diff changeset
111
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
112 return retval;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
113 }
27101
097774bed4ed move some static functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 26634
diff changeset
114
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
115 octave_qscintilla::octave_qscintilla (QWidget *p)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
116 : QsciScintilla (p), m_debug_mode (false), m_word_at_cursor (),
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
117 m_selection (), m_selection_replacement (), m_selection_line (-1),
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
118 m_selection_col (-1), m_indicator_id (1)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
119 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
120 connect (this, SIGNAL (textChanged ()),
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
121 this, SLOT (text_changed ()));
18689
fac35875f6eb update enabled status of undo/redo actions in the editor
Torsten <ttl@justmail.de>
parents: 18687
diff changeset
122
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
123 connect (this, SIGNAL (cursorPositionChanged (int, int)),
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
124 this, SLOT (cursor_position_changed (int, int)));
24172
90903d915625 improve handling of selection markers in editor
John W. Eaton <jwe@octave.org>
parents: 24171
diff changeset
125
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
126 connect (this, &octave_qscintilla::ctx_menu_run_finished_signal,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
127 this, &octave_qscintilla::ctx_menu_run_finished,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
128 Qt::QueuedConnection);
27556
410622ac120f improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27461
diff changeset
129
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
130 // clear scintilla edit shortcuts that are handled by the editor
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
131 QsciCommandSet *cmd_set = standardCommands ();
18675
c199304dfb2a handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
132
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
133 // Disable buffered drawing on all systems
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
134 SendScintilla (SCI_SETBUFFEREDDRAW, false);
25523
5daeb4049088 gui: fix editor rendering on some displays, disable QScintilla buffered drawing
Mike Miller <mtmiller@octave.org>
parents: 25103
diff changeset
135
21724
aba2e6293dd8 use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents: 21578
diff changeset
136 #if defined (HAVE_QSCI_VERSION_2_6_0)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
137 // find () was added in QScintilla 2.6
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
138 cmd_set->find (QsciCommand::SelectionCopy)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
139 cmd_set->find (QsciCommand::SelectionCut)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
140 cmd_set->find (QsciCommand::Paste)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
141 cmd_set->find (QsciCommand::SelectAll)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
142 cmd_set->find (QsciCommand::SelectionDuplicate)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
143 cmd_set->find (QsciCommand::LineTranspose)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
144 cmd_set->find (QsciCommand::Undo)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
145 cmd_set->find (QsciCommand::Redo)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
146 cmd_set->find (QsciCommand::SelectionUpperCase)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
147 cmd_set->find (QsciCommand::SelectionLowerCase)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
148 cmd_set->find (QsciCommand::ZoomIn)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
149 cmd_set->find (QsciCommand::ZoomOut)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
150 cmd_set->find (QsciCommand::DeleteWordLeft)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
151 cmd_set->find (QsciCommand::DeleteWordRight)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
152 cmd_set->find (QsciCommand::DeleteLineLeft)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
153 cmd_set->find (QsciCommand::DeleteLineRight)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
154 cmd_set->find (QsciCommand::LineDelete)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
155 cmd_set->find (QsciCommand::LineCut)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
156 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
157 #else
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
158 // find commands via its default key (tricky way without find ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
159 QList< QsciCommand * > cmd_list = cmd_set->commands ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
160 for (int i = 0; i < cmd_list.length (); i++)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
161 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
162 int cmd_key = cmd_list.at (i)->key ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
163 switch (cmd_key)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
164 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
165 case Qt::Key_C | Qt::CTRL : // SelectionCopy
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
166 case Qt::Key_X | Qt::CTRL : // SelectionCut
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
167 case Qt::Key_V | Qt::CTRL : // Paste
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
168 case Qt::Key_A | Qt::CTRL : // SelectAll
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
169 case Qt::Key_D | Qt::CTRL : // SelectionDuplicate
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
170 case Qt::Key_T | Qt::CTRL : // LineTranspose
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
171 case Qt::Key_Z | Qt::CTRL : // Undo
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
172 case Qt::Key_Y | Qt::CTRL : // Redo
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
173 case Qt::Key_Z | Qt::CTRL | Qt::SHIFT : // Redo
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
174 case Qt::Key_U | Qt::CTRL : // SelectionLowerCase
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
175 case Qt::Key_U | Qt::CTRL | Qt::SHIFT : // SelectionUpperCase
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
176 case Qt::Key_Plus | Qt::CTRL : // ZoomIn
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
177 case Qt::Key_Minus | Qt::CTRL : // ZoomOut
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
178 case Qt::Key_Backspace | Qt::CTRL | Qt::SHIFT : // DeleteLineLeft
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
179 case Qt::Key_Delete | Qt::CTRL | Qt::SHIFT : // DeleteLineRight
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
180 case Qt::Key_K | Qt::META : // DeleteLineRight
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
181 case Qt::Key_Backspace | Qt::CTRL : // DeleteWordLeft
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
182 case Qt::Key_Delete | Qt::CTRL : // DeleteWordRight
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
183 case Qt::Key_L | Qt::CTRL | Qt::SHIFT : // LineDelete
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
184 case Qt::Key_L | Qt::CTRL : // LineCut
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
185 case Qt::Key_T | Qt::CTRL | Qt::SHIFT : // LineCopy
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
186 cmd_list.at (i)->setKey (0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
187 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
188 }
18675
c199304dfb2a handling qscintilla internal shortcuts and commands depending on qsci version
Torsten <ttl@justmail.de>
parents: 18656
diff changeset
189 #endif
18954
c6b89c4a9e63 Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents: 18767
diff changeset
190
c6b89c4a9e63 Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
pantxo <pantxo.diribarne@gmail.com>
parents: 18767
diff changeset
191 #if defined (Q_OS_MAC)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
192 // Octave interprets Cmd key as Meta whereas Qscintilla interprets it
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
193 // as Ctrl. We thus invert Meta/Ctrl in Qscintilla's shortcuts list.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
194 QList< QsciCommand * > cmd_list_mac = cmd_set->commands ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
195 for (int i = 0; i < cmd_list_mac.length (); i++)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
196 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
197 // Primary key
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
198 int key = cmd_list_mac.at (i)->key ();
30439
fffccc353ffc octave-qscintilla.cc: Silence compiler warning about unused parameter.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30398
diff changeset
199
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
200 if (static_cast<int> (key | Qt::META) == key
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
201 && static_cast<int> (key | Qt::CTRL) != key)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
202 key = (key ^ Qt::META) | Qt::CTRL;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
203 else if (static_cast<int> (key | Qt::CTRL) == key)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
204 key = (key ^ Qt::CTRL) | Qt::META;
27753
dcf6569cd973 prevent empty lines when using F9 for executing slected code (bug #57243)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27752
diff changeset
205
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
206 cmd_list_mac.at (i)->setKey (key);
21158
65827e9cccb8 Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents: 20986
diff changeset
207
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
208 // Alternate key
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
209 key = cmd_list_mac.at (i)->alternateKey ();
23234
aaf20024db6f function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents: 23230
diff changeset
210
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
211 if (static_cast<int> (key | Qt::META) == key
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
212 && static_cast<int> (key | Qt::CTRL) != key)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
213 key = (key ^ Qt::META) | Qt::CTRL;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
214 else if (static_cast<int> (key | Qt::CTRL) == key)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
215 key = (key ^ Qt::CTRL) | Qt::META;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23807
diff changeset
216
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
217 cmd_list_mac.at (i)->setAlternateKey (key);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
218 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
219 #endif
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
220
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
221 // selection markers
24172
90903d915625 improve handling of selection markers in editor
John W. Eaton <jwe@octave.org>
parents: 24171
diff changeset
222
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
223 m_indicator_id = indicatorDefine (QsciScintilla::StraightBoxIndicator);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
224 if (m_indicator_id == -1)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
225 m_indicator_id = 1;
24172
90903d915625 improve handling of selection markers in editor
John W. Eaton <jwe@octave.org>
parents: 24171
diff changeset
226
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
227 setIndicatorDrawUnder (true, m_indicator_id);
24172
90903d915625 improve handling of selection markers in editor
John W. Eaton <jwe@octave.org>
parents: 24171
diff changeset
228
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
229 markerDefine (QsciScintilla::Minus, marker::selection);
24172
90903d915625 improve handling of selection markers in editor
John W. Eaton <jwe@octave.org>
parents: 24171
diff changeset
230
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
231 // init state of undo/redo action for this tab
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
232 Q_EMIT status_update (isUndoAvailable (), isRedoAvailable ());
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
233 }
16731
01d523d5f796 add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff changeset
234
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
235 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
236 octave_qscintilla::setCursorPosition (int line, int col)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
237 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
238 QsciScintilla::setCursorPosition (line, col);
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
239 Q_EMIT update_rowcol_indicator_signal (line, col);
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
240 }
29716
da9c55b3e9fa fix wring row/col indicator in GUI editor when auto intending (bug #60690)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29707
diff changeset
241
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
242 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
243 octave_qscintilla::set_selection_marker_color (const QColor& c)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
244 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
245 QColor ic = c;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
246 ic.setAlphaF (0.45);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
247 setIndicatorForegroundColor (ic, m_indicator_id);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
248 setIndicatorOutlineColor (ic, m_indicator_id);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
249
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
250 setMarkerForegroundColor (c, marker::selection);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
251 setMarkerBackgroundColor (c, marker::selection);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
252 }
24172
90903d915625 improve handling of selection markers in editor
John W. Eaton <jwe@octave.org>
parents: 24171
diff changeset
253
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
254 // context menu requested
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
255 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
256 octave_qscintilla::contextMenuEvent (QContextMenuEvent *e)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
257 {
21724
aba2e6293dd8 use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents: 21578
diff changeset
258 #if defined (HAVE_QSCI_VERSION_2_6_0)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
259 QPoint global_pos, local_pos; // the menu's position
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
260 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
261
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
262 bool in_left_margin = false;
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
263
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
264 // determine position depending on mouse or keyboard event
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
265 if (e->reason () == QContextMenuEvent::Mouse)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
266 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
267 // context menu by mouse
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
268 global_pos = e->globalPos (); // global mouse position
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
269 local_pos = e->pos (); // local mouse position
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
270 if (e->x () < marginWidth (1) + marginWidth (2))
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
271 in_left_margin = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
272 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
273 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
274 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
275 // context menu by keyboard or other: get point of text cursor
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
276 get_global_textcursor_pos (&global_pos, &local_pos);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
277 QRect editor_rect = geometry (); // editor rect mapped to global
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
278 editor_rect.moveTopLeft
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
279 (parentWidget ()->mapToGlobal (editor_rect.topLeft ()));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
280 if (! editor_rect.contains (global_pos)) // is cursor outside editor?
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
281 global_pos = editor_rect.topLeft (); // yes, take top left corner
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
282 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
283
30439
fffccc353ffc octave-qscintilla.cc: Silence compiler warning about unused parameter.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30398
diff changeset
284 # if defined (HAVE_QSCI_VERSION_2_6_0)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
285 if (! in_left_margin)
30439
fffccc353ffc octave-qscintilla.cc: Silence compiler warning about unused parameter.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30398
diff changeset
286 # endif
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
287 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
288 // fill context menu with editor's standard actions
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
289 Q_EMIT create_context_menu_signal (context_menu);
21158
65827e9cccb8 Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents: 20986
diff changeset
290
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
291 // additional custom entries of the context menu
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
292 context_menu->addSeparator (); // separator before custom entries
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
293
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
294 // help menu: get the position of the mouse or the text cursor
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
295 // (only for octave files)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
296 QString lexer_name = lexer ()->lexer ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
297 if (lexer_name == "octave" || lexer_name == "matlab")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
298 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
299 m_word_at_cursor = wordAtPoint (local_pos);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
300 if (! m_word_at_cursor.isEmpty ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
301 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
302 context_menu->addAction (tr ("Help on") + ' ' + m_word_at_cursor,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
303 this, &octave_qscintilla::contextmenu_help);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
304 context_menu->addAction (tr ("Documentation on")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
305 + ' ' + m_word_at_cursor,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
306 this, &octave_qscintilla::contextmenu_doc);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
307 context_menu->addAction (tr ("Edit") + ' ' + m_word_at_cursor,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
308 this, &octave_qscintilla::contextmenu_edit);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
309 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
310 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
311 }
30439
fffccc353ffc octave-qscintilla.cc: Silence compiler warning about unused parameter.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30398
diff changeset
312 # if defined (HAVE_QSCI_VERSION_2_6_0)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
313 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
314 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
315 // remove all standard actions from scintilla
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
316 QList<QAction *> all_actions = context_menu->actions ();
21158
65827e9cccb8 Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents: 20986
diff changeset
317
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
318 for (auto *a : all_actions)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
319 context_menu->removeAction (a);
21158
65827e9cccb8 Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents: 20986
diff changeset
320
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
321 QAction *act
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
322 = context_menu->addAction (tr ("dbstop if ..."), this,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
323 &octave_qscintilla::contextmenu_break_condition);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
324 act->setData (local_pos);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
325 }
30439
fffccc353ffc octave-qscintilla.cc: Silence compiler warning about unused parameter.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30398
diff changeset
326 # endif
16735
cee305c91e91 show help menu in editors context menu only for octave files
Torsten <ttl@justmail.de>
parents: 16733
diff changeset
327
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
328 // finally show the menu
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
329 context_menu->exec (global_pos);
30439
fffccc353ffc octave-qscintilla.cc: Silence compiler warning about unused parameter.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30398
diff changeset
330
fffccc353ffc octave-qscintilla.cc: Silence compiler warning about unused parameter.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30398
diff changeset
331 #else
fffccc353ffc octave-qscintilla.cc: Silence compiler warning about unused parameter.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30398
diff changeset
332
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
333 octave_unused_parameter (e);
30439
fffccc353ffc octave-qscintilla.cc: Silence compiler warning about unused parameter.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30398
diff changeset
334
20277
48d9001bdee3 Avoid HAVE_ macros in header file.
John W. Eaton <jwe@octave.org>
parents: 19697
diff changeset
335 #endif
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
336 }
16731
01d523d5f796 add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff changeset
337
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
338 // common function with flag for documentation
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
339 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
340 octave_qscintilla::contextmenu_help_doc (bool documentation)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
341 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
342 if (documentation)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
343 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
344 std::string name = m_word_at_cursor.toStdString ();
31697
dd904ce6f53f use interpreter event to display documentation in terminal and editor widgets
John W. Eaton <jwe@octave.org>
parents: 31692
diff changeset
345
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
346 Q_EMIT interpreter_event
33034
49128bdb9eb2 use explicit lambda-expression captures (bug #65318)
John W. Eaton <jwe@octave.org>
parents: 33033
diff changeset
347 ([name] (interpreter& interp)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
348 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
349 // INTERPRETER THREAD
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
350
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
351 F__event_manager_show_documentation__ (interp, ovl (name));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
352 });
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
353 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
354 else
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
355 Q_EMIT execute_command_in_terminal_signal ("help " + m_word_at_cursor);
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
356 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
357
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
358 // call edit the function related to the current word
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
359 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
360 octave_qscintilla::context_edit ()
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
361 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
362 if (get_actual_word ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
363 contextmenu_edit (true);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
364 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23807
diff changeset
365
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
366 // call edit the function related to the current word
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
367 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
368 octave_qscintilla::context_run ()
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
369 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
370 if (hasSelectedText ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
371 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
372 contextmenu_run (true);
27753
dcf6569cd973 prevent empty lines when using F9 for executing slected code (bug #57243)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27752
diff changeset
373
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
374 Q_EMIT interpreter_event
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
375 ([] (interpreter&)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
376 { command_editor::erase_empty_line (false); });
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
377 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
378 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
379
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
380 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
381 octave_qscintilla::get_global_textcursor_pos (QPoint *global_pos,
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
382 QPoint *local_pos)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
383 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
384 long position = SendScintilla (SCI_GETCURRENTPOS);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
385 long point_x = SendScintilla (SCI_POINTXFROMPOSITION, 0, position);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
386 long point_y = SendScintilla (SCI_POINTYFROMPOSITION, 0, position);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
387 *local_pos = QPoint (point_x, point_y); // local cursor position
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
388 *global_pos = mapToGlobal (*local_pos); // global position of cursor
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
389 }
17635
7945344506ae Add possibility to run selected text of the editor in the terminal
Torsten <ttl@justmail.de>
parents: 17628
diff changeset
390
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
391 // determine the actual word and whether we are in an octave or matlab script
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
392 bool
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
393 octave_qscintilla::get_actual_word ()
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
394 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
395 QPoint global_pos, local_pos;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
396 get_global_textcursor_pos (&global_pos, &local_pos);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
397 m_word_at_cursor = wordAtPoint (local_pos);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
398 QString lexer_name = lexer ()->lexer ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
399 return ((lexer_name == "octave" || lexer_name == "matlab")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
400 && ! m_word_at_cursor.isEmpty ());
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
401 }
21158
65827e9cccb8 Gui support for enhancement of dbstop.
Lachlan Andrew <lachlanbis@gmail.com>
parents: 20986
diff changeset
402
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
403 // helper function for clearing all indicators of a specific style
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
404 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
405 octave_qscintilla::clear_selection_markers ()
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
406 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
407 int end_pos = text ().length ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
408 int end_line, end_col;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
409 lineIndexFromPosition (end_pos, &end_line, &end_col);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
410 clearIndicatorRange (0, 0, end_line, end_col, m_indicator_id);
24171
1680d425bb38 also place marker in editor margin for lines matching selected word
John W. Eaton <jwe@octave.org>
parents: 24166
diff changeset
411
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
412 markerDeleteAll (marker::selection);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
413 }
24172
90903d915625 improve handling of selection markers in editor
John W. Eaton <jwe@octave.org>
parents: 24171
diff changeset
414
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
415 QString
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
416 octave_qscintilla::eol_string ()
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
417 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
418 switch (eolMode ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
419 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
420 case QsciScintilla::EolWindows:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
421 return ("\r\n");
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
422 case QsciScintilla::EolMac:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
423 return ("\r");
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
424 case QsciScintilla::EolUnix:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
425 return ("\n");
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
426 }
28364
44f2d73df4b3 remove trailing spaces without replacing full editor text (bug #58417)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28283
diff changeset
427
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
428 // Last resort, if the above goes wrong (should never happen)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
429 return ("\r\n");
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
430 }
28364
44f2d73df4b3 remove trailing spaces without replacing full editor text (bug #58417)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28283
diff changeset
431
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
432 // Function returning the true cursor position where the tab length
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
433 // is taken into account.
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
434 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
435 octave_qscintilla::get_current_position (int *pos, int *line, int *col)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
436 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
437 *pos = SendScintilla (QsciScintillaBase::SCI_GETCURRENTPOS);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
438 *line = SendScintilla (QsciScintillaBase::SCI_LINEFROMPOSITION, *pos);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
439 *col = SendScintilla (QsciScintillaBase::SCI_GETCOLUMN, *pos);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
440 }
20986
00835323fb44 prevent shortcut ambiguity between main and editor window
Torsten <ttl@justmail.de>
parents: 20955
diff changeset
441
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
442 // Function returning the comment string of the current lexer
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
443 QStringList
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
444 octave_qscintilla::comment_string (bool comment)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
445 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
446 int lexer = SendScintilla (SCI_GETLEXER);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
447
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
448 switch (lexer)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
449 {
24222
7d1561c9ee48 prevent ignoring octave lexer when determining comment string (bug #52364)
Torsten <mttl@mailbox.org>
parents: 24190
diff changeset
450 #if defined (HAVE_LEXER_OCTAVE) || defined (HAVE_LEXER_MATLAB)
23234
aaf20024db6f function providing comment strings uses lexer number and not lexer names
Torsten <mttl@mailbox.org>
parents: 23230
diff changeset
451 #if defined (HAVE_LEXER_OCTAVE)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
452 case SCLEX_OCTAVE:
24222
7d1561c9ee48 prevent ignoring octave lexer when determining comment string (bug #52364)
Torsten <mttl@mailbox.org>
parents: 24190
diff changeset
453 #else
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
454 case SCLEX_MATLAB:
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
455 #endif
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
456 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
457 gui_settings settings;
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
458
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
459 int comment_string;
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24593
diff changeset
460
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
461 if (comment)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
462 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
463 // The commenting string is requested
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
464 if (settings.contains (ed_comment_str.settings_key ()))
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
465 // new version (radio buttons)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
466 comment_string = settings.int_value (ed_comment_str);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
467 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
468 // old version (combo box)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
469 comment_string = settings.value (ed_comment_str_old.settings_key (),
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
470 ed_comment_str.def ()).toInt ();
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
471
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
472 return (QStringList (ed_comment_strings.at (comment_string)));
26634
48ddf51a6ef7 Update smart indent code for case/otherwise (Bug #55276)
John Donoghue <john.donoghue@ieee.org>
parents: 26480
diff changeset
473 }
48ddf51a6ef7 Update smart indent code for case/otherwise (Bug #55276)
John Donoghue <john.donoghue@ieee.org>
parents: 26480
diff changeset
474 else
29712
0e888d2f79b7 fix auto indentation of switch-strucutre in GUI editor (bug #60649)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 29654
diff changeset
475 {
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
476 QStringList c_str;
28281
12ad6f1dc3b6 run slelected editor code as block, not line by line (bug #58323)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28274
diff changeset
477
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
478 // The possible uncommenting string(s) are requested
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
479 comment_string = settings.int_value (ed_uncomment_str);
27912
84d6abff1006 Do not indent next line on single line constructs (Bug #57358).
John Donoghue <john.donoghue@ieee.org>
parents: 27909
diff changeset
480
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
481 for (int i = 0; i < ed_comment_strings_count; i++)
26634
48ddf51a6ef7 Update smart indent code for case/otherwise (Bug #55276)
John Donoghue <john.donoghue@ieee.org>
parents: 26480
diff changeset
482 {
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
483 if (1 << i & comment_string)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
484 c_str.append (ed_comment_strings.at (i));
26634
48ddf51a6ef7 Update smart indent code for case/otherwise (Bug #55276)
John Donoghue <john.donoghue@ieee.org>
parents: 26480
diff changeset
485 }
24232
e0bcd17ac070 smart indentation for selections or current line in code editor
John W. Eaton <jwe@octave.org>
parents: 24222
diff changeset
486
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
487 return c_str;
27684
becd6267d6d1 hide tmp file in error and bp messages when executing selected code (bug #57205)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27678
diff changeset
488 }
24190
90fe16a3a5a1 improve selection replacement in editor
John W. Eaton <jwe@octave.org>
parents: 24187
diff changeset
489
27556
410622ac120f improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 27461
diff changeset
490 }
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
491 #endif
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
492
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
493 case SCLEX_PERL:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
494 case SCLEX_BASH:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
495 case SCLEX_DIFF:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
496 return QStringList ("#");
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
497
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
498 case SCLEX_CPP:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
499 return QStringList ("//");
28364
44f2d73df4b3 remove trailing spaces without replacing full editor text (bug #58417)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28283
diff changeset
500
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
501 case SCLEX_BATCH:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
502 return QStringList ("REM ");
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
503 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
504
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
505 return QStringList ("%"); // should never happen
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
506 }
28364
44f2d73df4b3 remove trailing spaces without replacing full editor text (bug #58417)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28283
diff changeset
507
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
508 // provide the style at a specific position
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
509 int
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
510 octave_qscintilla::get_style (int pos)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
511 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
512 int position;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
513 if (pos < 0)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
514 // The positition has to be reduced by 2 for getting the real style (?)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
515 position = SendScintilla (QsciScintillaBase::SCI_GETCURRENTPOS) - 2;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
516 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
517 position = pos;
24190
90fe16a3a5a1 improve selection replacement in editor
John W. Eaton <jwe@octave.org>
parents: 24187
diff changeset
518
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
519 return SendScintilla (QsciScintillaBase::SCI_GETSTYLEAT, position);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
520 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
521
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
522 // Is a specific cursor position in a line or block comment?
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
523 int
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
524 octave_qscintilla::is_style_comment (int pos)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
525 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
526 int lexer = SendScintilla (QsciScintillaBase::SCI_GETLEXER);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
527 int style = get_style (pos);
28281
12ad6f1dc3b6 run slelected editor code as block, not line by line (bug #58323)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28274
diff changeset
528
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
529 switch (lexer)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
530 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
531 case SCLEX_CPP:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
532 return (ST_LINE_COMMENT * (style == QsciLexerCPP::CommentLine
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
533 || style == QsciLexerCPP::CommentLineDoc)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
534 + ST_BLOCK_COMMENT * (style == QsciLexerCPP::Comment
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
535 || style == QsciLexerCPP::CommentDoc
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
536 || style == QsciLexerCPP::CommentDocKeyword
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
537 || style == QsciLexerCPP::CommentDocKeywordError));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
538
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
539 #if defined (HAVE_LEXER_MATLAB)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
540 case SCLEX_MATLAB:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
541 return (ST_LINE_COMMENT * (style == QsciLexerMatlab::Comment));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
542 #endif
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
543 #if defined (HAVE_LEXER_OCTAVE)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
544 case SCLEX_OCTAVE:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
545 return (ST_LINE_COMMENT * (style == QsciLexerOctave::Comment));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
546 #endif
24190
90fe16a3a5a1 improve selection replacement in editor
John W. Eaton <jwe@octave.org>
parents: 24187
diff changeset
547
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
548 case SCLEX_PERL:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
549 return (ST_LINE_COMMENT * (style == QsciLexerPerl::Comment));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
550
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
551 case SCLEX_BATCH:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
552 return (ST_LINE_COMMENT * (style == QsciLexerBatch::Comment));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
553
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
554 case SCLEX_DIFF:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
555 return (ST_LINE_COMMENT * (style == QsciLexerDiff::Comment));
28281
12ad6f1dc3b6 run slelected editor code as block, not line by line (bug #58323)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28274
diff changeset
556
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
557 case SCLEX_BASH:
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
558 return (ST_LINE_COMMENT * (style == QsciLexerBash::Comment));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
559
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
560 }
28283
777eb315b004 add selection to history before evaluation of selected code (bug #58323)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28281
diff changeset
561
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
562 return ST_NONE;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
563 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
564
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
565 // Do smart indentation after if, for, ...
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
566 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
567 octave_qscintilla::smart_indent (bool do_smart_indent, int do_auto_close,
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
568 int line, int ind_char_width)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
569 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
570 QString prevline = text (line);
31724
340d016c2edf maint: Merge stable to default.
John W. Eaton <jwe@octave.org>
parents: 31709 31723
diff changeset
571
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
572 QRegularExpression bkey {"^[\t ]*(if|for|while|switch"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
573 "|do|function|properties|events|classdef"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
574 "|unwind_protect|try"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
575 "|parfor|methods)"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
576 "[\r]?[\n\t #%]"};
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
577 // last word except for comments, assuming no ' or " in comment.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
578 // rx_end = QRegExp ("(\\w+)[ \t;\r\n]*([%#][^\"']*)?$");
28364
44f2d73df4b3 remove trailing spaces without replacing full editor text (bug #58417)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28283
diff changeset
579
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
580 // last word except for comments,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
581 // allowing % and # in single or double quoted strings
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
582 // FIXME: This will get confused by transpose.
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
583 QRegularExpression ekey {"(?:(?:['\"][^'\"]*['\"])?[^%#]*)*"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
584 "(\\w+)[ \t;\r\n]*(?:[%#].*)?$"};
31619
ad014fc78bd6 use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents: 31354
diff changeset
585
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
586 QRegularExpressionMatch bmatch = bkey.match (prevline);
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
587
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
588 if (bmatch.hasMatch ())
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
589 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
590 // Found keyword after that indentation should be added
28364
44f2d73df4b3 remove trailing spaces without replacing full editor text (bug #58417)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28283
diff changeset
591
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
592 // Check for existing end statement in the same line
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
593 QRegularExpressionMatch ematch = ekey.match (prevline,
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
594 bmatch.capturedStart ());
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
595 QString first_word = bmatch.captured (1);
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
596 bool inline_end = ematch.hasMatch ()
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
597 && is_end (ematch.captured (1), first_word);
31724
340d016c2edf maint: Merge stable to default.
John W. Eaton <jwe@octave.org>
parents: 31709 31723
diff changeset
598
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
599 if (do_smart_indent && ! inline_end)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
600 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
601 // Do smart indent in the current line (line+1)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
602 indent (line+1);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
603 setCursorPosition (line+1, indentation (line+1) / ind_char_width);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
604 }
31724
340d016c2edf maint: Merge stable to default.
John W. Eaton <jwe@octave.org>
parents: 31709 31723
diff changeset
605
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
606 if (do_auto_close
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
607 && ! inline_end
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
608 && ! first_word.contains
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
609 (QRegularExpression
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
610 {"(?:case|otherwise|unwind_protect_cleanup)"}))
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
611 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
612 // Do auto close
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
613 auto_close (do_auto_close, line, prevline, first_word);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
614 }
28364
44f2d73df4b3 remove trailing spaces without replacing full editor text (bug #58417)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28283
diff changeset
615
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
616 return;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
617 }
31724
340d016c2edf maint: Merge stable to default.
John W. Eaton <jwe@octave.org>
parents: 31709 31723
diff changeset
618
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
619 QRegularExpression mkey {"^[\t ]*(?:else|elseif|catch|unwind_protect_cleanup)"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
620 "[\r]?[\t #%\n]"};
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
621 if (prevline.contains (mkey))
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
622 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
623 int prev_ind = indentation (line-1);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
624 int act_ind = indentation (line);
31724
340d016c2edf maint: Merge stable to default.
John W. Eaton <jwe@octave.org>
parents: 31709 31723
diff changeset
625
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
626 if (prev_ind == act_ind)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
627 unindent (line);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
628 else if (prev_ind > act_ind)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
629 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
630 setIndentation (line+1, prev_ind);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
631 setCursorPosition (line+1, prev_ind);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
632 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
633 return;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
634 }
28364
44f2d73df4b3 remove trailing spaces without replacing full editor text (bug #58417)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28283
diff changeset
635
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
636 QRegularExpression case_key {"^[\t ]*(?:case|otherwise)[\r]?[\t #%\n]"};
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
637 if (prevline.contains (case_key) && do_smart_indent)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
638 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
639 QString last_line = text (line-1);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
640 int prev_ind = indentation (line-1);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
641 int act_ind = indentation (line);
28364
44f2d73df4b3 remove trailing spaces without replacing full editor text (bug #58417)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28283
diff changeset
642
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
643 if (last_line.contains (QRegularExpression {"^[\t ]*switch"}))
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
644 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
645 indent (line+1);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
646 act_ind = indentation (line+1);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
647 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
648 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
649 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
650 if (prev_ind == act_ind)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
651 unindent (line);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
652 else if (prev_ind > act_ind)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
653 act_ind = prev_ind;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
654 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
655
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
656 setIndentation (line+1, act_ind);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
657 setCursorPosition (line+1, act_ind);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
658 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
659
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
660 ekey = QRegularExpression
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
661 {"^[\t ]*(?:end|endif|endfor|endwhile|until|endfunction"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
662 "|endswitch|end_try_catch|end_unwind_protect)[\r]?[\t #%\n(;]"};
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
663 if (prevline.contains (ekey))
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
664 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
665 if (indentation (line-1) <= indentation (line))
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
666 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
667 unindent (line+1);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
668 unindent (line);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
669 if (prevline.contains ("endswitch"))
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
670 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
671 // endswitch has to me unndented twice
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
672 unindent (line+1);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
673 unindent (line);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
674 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
675 setCursorPosition (line+1,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
676 indentation (line));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
677 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
678 return;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
679 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
680 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
681
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
682 // Do smart indentation of current selection or line.
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
683 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
684 octave_qscintilla::smart_indent_line_or_selected_text (int lineFrom,
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
685 int lineTo)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
686 {
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
687 QRegularExpression blank_line_regexp {"^[\t ]*$"};
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
688
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
689 // end[xxxxx] [# comment] at end of a line
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
690 QRegularExpression
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
691 end_word_regexp {"(?:(?:['\"][^'\"]*['\"])?[^%#]*)*"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
692 "(?:end\\w*)[\r\n\t ;]*(?:[%#].*)?$"};
28364
44f2d73df4b3 remove trailing spaces without replacing full editor text (bug #58417)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28283
diff changeset
693
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
694 QRegularExpression
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
695 begin_block_regexp {"^[\t ]*(?:if|elseif|else"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
696 "|for|while|do|parfor"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
697 "|switch|case|otherwise"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
698 "|function"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
699 "|classdef|properties|events|enumeration|methods"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
700 "|unwind_protect|unwind_protect_cleanup|try|catch)"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
701 "[\r\n\t #%]"};
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
702
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
703 QRegularExpression
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
704 mid_block_regexp {"^[\t ]*(?:elseif|else"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
705 "|unwind_protect_cleanup|catch)"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
706 "[\r\n\t #%]"};
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
707
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
708 QRegularExpression
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
709 end_block_regexp {"^[\t ]*(?:end"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
710 "|end(for|function|if|parfor|switch|while"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
711 "|classdef|enumeration|events|methods|properties)"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
712 "|end_(try_catch|unwind_protect)"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
713 "|until)"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
714 "[\r\n\t #%]"};
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
715
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
716 QRegularExpression
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
717 case_block_regexp {"^[\t ]*(?:case|otherwise)"
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
718 "[\r\n\t #%]"};
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
719
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
720 QRegularExpressionMatch match;
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
721
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
722 int indent_column = -1;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
723 int indent_increment = indentationWidth ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
724 bool in_switch = false;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
725
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
726 for (int line = lineFrom-1; line >= 0; line--)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
727 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
728 QString line_text = text (line);
28364
44f2d73df4b3 remove trailing spaces without replacing full editor text (bug #58417)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28283
diff changeset
729
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
730 match = blank_line_regexp.match (line_text);
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
731 if (! match.hasMatch ())
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
732 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
733 // Found first non-blank line above beginning of region or
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
734 // current line. Base indentation from this line, increasing
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
735 // indentation by indentationWidth if it looks like the
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
736 // beginning of a code block.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
737
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
738 indent_column = indentation (line);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
739
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
740 match = begin_block_regexp.match (line_text);
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
741 if (match.hasMatch ())
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
742 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
743 indent_column += indent_increment;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
744 if (line_text.contains ("switch"))
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
745 in_switch = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
746 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
747
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
748 break;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
749 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
750 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
751
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
752 if (indent_column < 0)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
753 indent_column = indentation (lineFrom);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
754
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
755 QString prev_line;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
756 for (int line = lineFrom; line <= lineTo; line++)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
757 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
758 QString line_text = text (line);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
759
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
760 match = end_block_regexp.match (line_text);
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
761 if (match.hasMatch ())
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
762 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
763 indent_column -= indent_increment;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
764 if (line_text.contains ("endswitch"))
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
765 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
766 // need a double de-indent for endswitch
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
767 if (in_switch)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
768 indent_column -= indent_increment;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
769 in_switch = false;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
770 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
771 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
772
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
773 match = mid_block_regexp.match (line_text);
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
774 if (match.hasMatch ())
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
775 indent_column -= indent_increment;
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
776
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
777 match = case_block_regexp.match (line_text);
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
778 if (match.hasMatch ())
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
779 {
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
780 match = case_block_regexp.match (prev_line);
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
781 if (! match.hasMatch ()
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
782 && ! prev_line.contains ("switch"))
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
783 indent_column -= indent_increment;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
784 in_switch = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
785 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
786
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
787 setIndentation (line, indent_column);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
788
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
789 match = begin_block_regexp.match (line_text);
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
790 if (match.hasMatch ())
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
791 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
792 // Check for existing end statement in the same line
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
793 match = end_word_regexp.match (line_text, match.capturedStart ());
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
794 if (! match.hasMatch ())
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
795 indent_column += indent_increment;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
796 if (line_text.contains ("switch"))
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
797 in_switch = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
798 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
799
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
800 match = blank_line_regexp.match (line_text);
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
801 if (! match.hasMatch ())
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
802 prev_line = line_text;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
803 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
804 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
805
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
806 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
807 octave_qscintilla::set_word_selection (const QString& word)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
808 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
809 m_selection = word;
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
810
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
811 if (word.isEmpty ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
812 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
813 m_selection_line = -1;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
814 m_selection_col = -1;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
815
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
816 m_selection_replacement = "";
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
817
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
818 clear_selection_markers ();
28798
82ccc4e69ba3 show value in editor when hovering over variable in debug mode (bug #56990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28548
diff changeset
819
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
820 QToolTip::hideText ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
821 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
822 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
823 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
824 int pos;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
825 get_current_position (&pos, &m_selection_line, &m_selection_col);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
826 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
827 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
828
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
829 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
830 octave_qscintilla::show_selection_markers (int l1, int c1, int l2, int c2)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
831 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
832 fillIndicatorRange (l1, c1, l2, c2, m_indicator_id);
28798
82ccc4e69ba3 show value in editor when hovering over variable in debug mode (bug #56990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28548
diff changeset
833
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
834 if (l1 == l2)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
835 markerAdd (l1, marker::selection);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
836 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
837
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
838 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
839 octave_qscintilla::contextmenu_help (bool)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
840 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
841 contextmenu_help_doc (false);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
842 }
31690
1a1f47f17ed4 eliminate resource_manager class
John W. Eaton <jwe@octave.org>
parents: 31649
diff changeset
843
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
844 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
845 octave_qscintilla::contextmenu_doc (bool)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
846 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
847 contextmenu_help_doc (true);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
848 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
849
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
850 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
851 octave_qscintilla::context_help_doc (bool documentation)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
852 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
853 if (get_actual_word ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
854 contextmenu_help_doc (documentation);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
855 }
31690
1a1f47f17ed4 eliminate resource_manager class
John W. Eaton <jwe@octave.org>
parents: 31649
diff changeset
856
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
857 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
858 octave_qscintilla::contextmenu_edit (bool)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
859 {
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
860 Q_EMIT context_menu_edit_signal (m_word_at_cursor);
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
861 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
862
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
863 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
864 octave_qscintilla::contextmenu_run_temp_error ()
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
865 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
866 QMessageBox::critical (this, tr ("Octave Editor"),
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
867 tr ("Creating temporary files failed.\n"
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
868 "Make sure you have write access to temp. directory\n"
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
869 "%1\n\n"
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
870 "\"Run Selection\" requires temporary files.").arg (QDir::tempPath ()));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
871 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
872
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
873 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
874 octave_qscintilla::contextmenu_run (bool)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
875 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
876 // Take selected code and extend it by commands for echoing each
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
877 // evaluated line and for adding the line to the history (use script)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
878 QString code = QString ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
879 QString hist = QString ();
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
880
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
881 // Split contents into single lines and complete commands
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
882 QStringList lines = selectedText ().split (QRegularExpression {"[\r\n]"},
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
883 #if defined (HAVE_QT_SPLITBEHAVIOR_ENUM)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
884 Qt::SkipEmptyParts);
30439
fffccc353ffc octave-qscintilla.cc: Silence compiler warning about unused parameter.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30398
diff changeset
885 #else
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
886 QString::SkipEmptyParts);
23236
4cd5f975d26c automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents: 23234
diff changeset
887 #endif
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
888 for (int i = 0; i < lines.count (); i++)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
889 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
890 QString line = lines.at (i);
33438
b2333101ca29 allow to run selected tests and demos by F9 (bug #65577)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33359
diff changeset
891
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
892 if (line.trimmed ().isEmpty ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
893 continue;
33438
b2333101ca29 allow to run selected tests and demos by F9 (bug #65577)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33359
diff changeset
894
33439
f31a0d826776 improve running test and demos by F9 (bug #65577)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33438
diff changeset
895 if (line.startsWith ("%!")) // Handle tests and demos
f31a0d826776 improve running test and demos by F9 (bug #65577)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33438
diff changeset
896 {
33512
7afc314f2998 maint: Remove unnecessary indentation block in cset f31a0d826776.
Rik <rik@octave.org>
parents: 33479
diff changeset
897 // Do not remove "%!" if keyword (e.g., "test", "demo", etc.) is
7afc314f2998 maint: Remove unnecessary indentation block in cset f31a0d826776.
Rik <rik@octave.org>
parents: 33479
diff changeset
898 // directly following. Exception is "assert".
7afc314f2998 maint: Remove unnecessary indentation block in cset f31a0d826776.
Rik <rik@octave.org>
parents: 33479
diff changeset
899 // assert might be used without leading space
7afc314f2998 maint: Remove unnecessary indentation block in cset f31a0d826776.
Rik <rik@octave.org>
parents: 33479
diff changeset
900 line.replace (QRegularExpression ("^%!assert(\\s*)([^\\s]+)"),
7afc314f2998 maint: Remove unnecessary indentation block in cset f31a0d826776.
Rik <rik@octave.org>
parents: 33479
diff changeset
901 "assert\\1\\2");
7afc314f2998 maint: Remove unnecessary indentation block in cset f31a0d826776.
Rik <rik@octave.org>
parents: 33479
diff changeset
902 // Remove "%! " from body of test/demo block
7afc314f2998 maint: Remove unnecessary indentation block in cset f31a0d826776.
Rik <rik@octave.org>
parents: 33479
diff changeset
903 line.replace (QRegularExpression ("^%!\\s+"), "");
33439
f31a0d826776 improve running test and demos by F9 (bug #65577)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33438
diff changeset
904 }
33438
b2333101ca29 allow to run selected tests and demos by F9 (bug #65577)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33359
diff changeset
905
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
906 QString line_escaped = line;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
907 line_escaped.replace (QString ("'"), QString ("''"));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
908 QString line_history = line;
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
909
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
910 // Add codeline
33479
a583e8d66a19 do not change gui settings when running selected code by F9 (bug #65617)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33439
diff changeset
911 code += line + "\n";
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
912 hist += line_history + "\n";
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
913 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
914
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
915 octave_stdout << hist.toStdString ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
916
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
917 // Create tmp file with the code to be executed by the interpreter
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
918 QPointer<QTemporaryFile> tmp_file = create_tmp_file ("m", code);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
919
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
920 if (tmp_file && tmp_file->open ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
921 tmp_file->close ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
922 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
923 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
924 // tmp files not working: use old way to run selection
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
925 contextmenu_run_temp_error ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
926 return;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
927 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
928
33479
a583e8d66a19 do not change gui settings when running selected code by F9 (bug #65617)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33439
diff changeset
929 // Store file in settings in order to avoid opening it in editor
a583e8d66a19 do not change gui settings when running selected code by F9 (bug #65617)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33439
diff changeset
930 gui_settings settings;
a583e8d66a19 do not change gui settings when running selected code by F9 (bug #65617)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33439
diff changeset
931 settings.setValue (ed_run_selection_tmp_file.settings_key (), tmp_file->fileName ());
a583e8d66a19 do not change gui settings when running selected code by F9 (bug #65617)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33439
diff changeset
932
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
933 // Create tmp file required for adding command to history
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
934 QPointer<QTemporaryFile> tmp_hist = create_tmp_file ("", hist);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
935
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
936 if (tmp_hist && tmp_hist->open ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
937 tmp_hist->close ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
938 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
939 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
940 // tmp files not working: use old way to run selection
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
941 contextmenu_run_temp_error ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
942 return;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
943 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
944
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
945 // Add commands to the history
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
946 Q_EMIT interpreter_event
33034
49128bdb9eb2 use explicit lambda-expression captures (bug #65318)
John W. Eaton <jwe@octave.org>
parents: 33033
diff changeset
947 ([tmp_hist] (interpreter& interp)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
948 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
949 // INTERPRETER THREAD
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
950
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
951 if (tmp_hist.isNull ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
952 return;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
953
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
954 std::string opt = "-r";
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
955 std::string path = tmp_hist->fileName ().toStdString ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
956
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
957 Fhistory (interp, ovl (opt, path));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
958 });
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23807
diff changeset
959
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
960 // The interpreter_event callback function below emits a signal.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
961 // Because we don't control when that happens, use a guarded pointer
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
962 // so that the callback can abort if this object is no longer valid.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
963
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
964 QPointer<octave_qscintilla> this_oq (this);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
965
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
966 // Let the interpreter execute the tmp file
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
967 Q_EMIT interpreter_event
33479
a583e8d66a19 do not change gui settings when running selected code by F9 (bug #65617)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33439
diff changeset
968 ([this, this_oq, tmp_file, tmp_hist] (interpreter& interp)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
969 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
970 // INTERPRETER THREAD
24190
90fe16a3a5a1 improve selection replacement in editor
John W. Eaton <jwe@octave.org>
parents: 24187
diff changeset
971
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
972 // FIXME: For now, just skip the entire callback if THIS_OQ is
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
973 // no longer valid. Maybe there is a better way to do this
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
974 // job?
24716
2b3e0b570e77 move GUI file editor classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 24593
diff changeset
975
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
976 if (this_oq.isNull ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
977 return;
24187
ff9bd559799b pop up tooltip message for changing selected words in editor
John W. Eaton <jwe@octave.org>
parents: 24172
diff changeset
978
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
979 std::string file = tmp_file->fileName ().toStdString ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
980
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
981 std::string pending_input = command_editor::get_current_line ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
982
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
983 int err_line = -1; // For storing the line of a poss. error
24190
90fe16a3a5a1 improve selection replacement in editor
John W. Eaton <jwe@octave.org>
parents: 24187
diff changeset
984
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
985 // Get current state of auto command repeat in debug mode
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
986 octave_value_list ovl_dbg = Fisdebugmode (interp);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
987 bool dbg = ovl_dbg(0).bool_value ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
988 octave_value_list ovl_auto_repeat = ovl (true);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
989 if (dbg)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
990 ovl_auto_repeat = Fauto_repeat_debug_command (interp, ovl (false), 1);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
991 bool auto_repeat = ovl_auto_repeat(0).bool_value ();
24187
ff9bd559799b pop up tooltip message for changing selected words in editor
John W. Eaton <jwe@octave.org>
parents: 24172
diff changeset
992
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
993 try
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
994 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
995 // Do the job
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
996 interp.source_file (file);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
997 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
998 catch (const execution_exception& ee)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
999 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1000 // Catch errors otherwise the rest of the interpreter
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1001 // will not be executed (cleaning up).
24187
ff9bd559799b pop up tooltip message for changing selected words in editor
John W. Eaton <jwe@octave.org>
parents: 24172
diff changeset
1002
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1003 // New error message and error stack
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1004 QString new_msg = QString::fromStdString (ee.message ());
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1005 std::list<frame_info> stack = ee.stack_info ();
24187
ff9bd559799b pop up tooltip message for changing selected words in editor
John W. Eaton <jwe@octave.org>
parents: 24172
diff changeset
1006
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1007 // Remove line and column from first line of error message only
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1008 // if it is related to the tmp itself, i.e. only if the
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1009 // the error stack size is 0, 1, or, if in debug mode, 2
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1010 size_t max_stack_size = 1;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1011 if (dbg)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1012 max_stack_size = 2;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1013 if (stack.size () <= max_stack_size)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1014 {
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
1015 QRegularExpression rx {"source: error sourcing file [^\n]*$"};
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1016 if (new_msg.contains (rx))
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1017 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1018 // Selected code has syntax errors
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1019 new_msg.replace (rx, "error sourcing selected code");
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1020 err_line = 0; // Nothing into history?
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1021 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1022 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1023 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1024 // Normal error, detect line and remove file
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1025 // name from message
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1026 QStringList rx_list;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1027 rx_list << "near line (\\d+),[^\n]*\n";
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1028 rx_list << "near line (\\d+),[^\n]*$";
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1029
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1030 QStringList replace_list;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1031 replace_list << "\n";
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1032 replace_list << "";
24187
ff9bd559799b pop up tooltip message for changing selected words in editor
John W. Eaton <jwe@octave.org>
parents: 24172
diff changeset
1033
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1034 for (int i = 0; i < rx_list.length (); i++)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1035 {
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
1036 rx = QRegularExpression {rx_list.at (i)};
33359
689d4d069bbf maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents: 33034
diff changeset
1037 QRegularExpressionMatch match = rx.match (new_msg);
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
1038 if (match.hasMatch ())
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1039 {
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
1040 err_line = match.captured (1).toInt ();
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1041 new_msg = new_msg.replace (rx, replace_list.at (i));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1042 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1043 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1044 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1045 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1046
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1047 // Drop first stack level, which is the temporary function file,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1048 // or, if in debug mode, drop first two stack levels
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1049 if (stack.size () > 0)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1050 stack.pop_back ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1051 if (dbg && (stack.size () > 0))
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1052 stack.pop_back ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1053
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1054 // Clean up before throwing the modified error.
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
1055 Q_EMIT ctx_menu_run_finished_signal (err_line,
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1056 tmp_file, tmp_hist,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1057 dbg, auto_repeat);
23236
4cd5f975d26c automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents: 23234
diff changeset
1058
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1059 // New exception with updated message and stack
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1060 execution_exception nee (ee.err_type (), ee.identifier (),
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1061 new_msg.toStdString (), stack);
23236
4cd5f975d26c automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents: 23234
diff changeset
1062
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1063 // Throw
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1064 throw (nee);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1065 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1066
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1067 // Clean up
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1068
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
1069 Q_EMIT ctx_menu_run_finished_signal (err_line,
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1070 tmp_file, tmp_hist,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1071 dbg, auto_repeat);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1072
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1073 command_editor::erase_empty_line (true);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1074 command_editor::replace_line ("");
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1075 command_editor::set_initial_input (pending_input);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1076 command_editor::redisplay ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1077 command_editor::interrupt_event_loop ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1078 command_editor::accept_line ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1079 command_editor::erase_empty_line (true);
28364
44f2d73df4b3 remove trailing spaces without replacing full editor text (bug #58417)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28283
diff changeset
1080
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1081 });
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1082 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1083
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1084 void octave_qscintilla::ctx_menu_run_finished
33479
a583e8d66a19 do not change gui settings when running selected code by F9 (bug #65617)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33439
diff changeset
1085 (int, QPointer<QTemporaryFile> tmp_file,
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1086 QPointer<QTemporaryFile> tmp_hist, bool dbg, bool auto_repeat)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1087 {
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
1088 Q_EMIT focus_console_after_command_signal ();
23236
4cd5f975d26c automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents: 23234
diff changeset
1089
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1090 // TODO: Use line nr. (int argument) of possible error for removing
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1091 // lines from history that were never executed. For this,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1092 // possible lines from commands at a debug prompt must be
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1093 // taken into consideration.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1094
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1095 if (tmp_file && tmp_file->exists ())
33479
a583e8d66a19 do not change gui settings when running selected code by F9 (bug #65617)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33439
diff changeset
1096 {
a583e8d66a19 do not change gui settings when running selected code by F9 (bug #65617)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33439
diff changeset
1097 tmp_file->remove ();
a583e8d66a19 do not change gui settings when running selected code by F9 (bug #65617)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33439
diff changeset
1098 gui_settings settings;
a583e8d66a19 do not change gui settings when running selected code by F9 (bug #65617)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33439
diff changeset
1099 settings.setValue (ed_run_selection_tmp_file.settings_key (), QString ());
a583e8d66a19 do not change gui settings when running selected code by F9 (bug #65617)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 33439
diff changeset
1100 }
23236
4cd5f975d26c automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents: 23234
diff changeset
1101
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1102 if (tmp_hist && tmp_hist->exists ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1103 tmp_hist->remove ();
31699
ca3e6e324d54 use signal/slot connection for debugging tooltips in editor
John W. Eaton <jwe@octave.org>
parents: 31698
diff changeset
1104
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
1105 Q_EMIT interpreter_event
33034
49128bdb9eb2 use explicit lambda-expression captures (bug #65318)
John W. Eaton <jwe@octave.org>
parents: 33033
diff changeset
1106 ([dbg, auto_repeat] (interpreter& interp)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1107 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1108 // INTERPRETER THREAD
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1109 if (dbg)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1110 Fauto_repeat_debug_command (interp, ovl (auto_repeat));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1111 });
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1112 }
27117
e14e48e838fa Don't add extra closing endXXX keywords in GUI Editor (bug #56160).
Rik <rik@octave.org>
parents: 27101
diff changeset
1113
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1114 // wrappers for dbstop related context menu items
23236
4cd5f975d26c automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents: 23234
diff changeset
1115
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1116 // FIXME: Why can't the data be sent as the argument to the function???
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1117 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1118 octave_qscintilla::contextmenu_break_condition (bool)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1119 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1120 #if defined (HAVE_QSCI_VERSION_2_6_0)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1121 QAction *action = qobject_cast<QAction *>(sender ());
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1122 QPoint local_pos = action->data ().value<QPoint> ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1123
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1124 // pick point just right of margins, so lineAt doesn't give -1
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1125 int margins = marginWidth (1) + marginWidth (2) + marginWidth (3);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1126 local_pos = QPoint (margins + 1, local_pos.y ());
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1127
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
1128 Q_EMIT context_menu_break_condition_signal (lineAt (local_pos));
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1129 #endif
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1130 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1131
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1132 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1133 octave_qscintilla::contextmenu_break_once (const QPoint& local_pos)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1134 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1135 #if defined (HAVE_QSCI_VERSION_2_6_0)
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
1136 Q_EMIT context_menu_break_once (lineAt (local_pos));
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1137 #else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1138 octave_unused_parameter (local_pos);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1139 #endif
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1140 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1141
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1142 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1143 octave_qscintilla::text_changed ()
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1144 {
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
1145 Q_EMIT status_update (isUndoAvailable (), isRedoAvailable ());
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1146 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1147
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1148 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1149 octave_qscintilla::cursor_position_changed (int line, int col)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1150 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1151 // Clear the selection if we move away from it. We have to check the
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1152 // position, because we allow entering text at the point of the
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1153 // selection to trigger a search and replace that does not clear the
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1154 // selection until it is complete.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1155
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1156 if (! m_selection.isEmpty ()
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1157 && (line != m_selection_line || col != m_selection_col))
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1158 set_word_selection ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1159 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1160
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1161 // when edit area gets focus update information on undo/redo actions
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1162 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1163 octave_qscintilla::focusInEvent (QFocusEvent *focusEvent)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1164 {
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
1165 Q_EMIT status_update (isUndoAvailable (), isRedoAvailable ());
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1166
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1167 QsciScintilla::focusInEvent (focusEvent);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1168 }
24190
90fe16a3a5a1 improve selection replacement in editor
John W. Eaton <jwe@octave.org>
parents: 24187
diff changeset
1169
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1170 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1171 octave_qscintilla::show_replace_action_tooltip ()
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1172 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1173 int pos;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1174 get_current_position (&pos, &m_selection_line, &m_selection_col);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1175
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1176 // Offer to replace other instances.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1177
31995
49d21a7b25a8 Replace deprecated QKeyCombination::operator+ by QKeyCombination::operator|.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31808
diff changeset
1178 QKeySequence keyseq = Qt::SHIFT | Qt::Key_Return;
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1179
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1180 QString msg = (tr ("Press '%1' to replace all occurrences of '%2' with '%3'.")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1181 . arg (keyseq.toString ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1182 . arg (m_selection)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1183 . arg (m_selection_replacement));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1184
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1185 QPoint global_pos;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1186 QPoint local_pos;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1187
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1188 get_global_textcursor_pos (&global_pos, &local_pos);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1189
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1190 QFontMetrics ttfm (QToolTip::font ());
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1191
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1192 // Try to avoid overlapping with the text completion dialog
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1193 // and the text that is currently being edited.
27117
e14e48e838fa Don't add extra closing endXXX keywords in GUI Editor (bug #56160).
Rik <rik@octave.org>
parents: 27101
diff changeset
1194
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1195 global_pos += QPoint (2*ttfm.maxWidth (), -3*ttfm.height ());
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1196
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1197 QToolTip::showText (global_pos, msg);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1198 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1199
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1200 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1201 octave_qscintilla::replace_all (const QString& o_str, const QString& n_str,
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1202 bool re, bool cs, bool wo)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1203 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1204 // get the resulting cursor position
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1205 int pos, line, col, nline, ncol;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1206 get_current_position (&pos, &line, &col);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1207
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1208 // remember first visible line for restoring the view afterwards
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1209 int first_line = firstVisibleLine ();
24187
ff9bd559799b pop up tooltip message for changing selected words in editor
John W. Eaton <jwe@octave.org>
parents: 24172
diff changeset
1210
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1211 // search for first occurrence of the detected word
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1212 bool find_result_available = findFirst (o_str, re, cs, wo,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1213 false, true, 0, 0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1214 // replace and find more occurrences in a loop
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1215 beginUndoAction ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1216 while (find_result_available)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1217 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1218 // findNext doesn't work properly if the length of the replacement
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1219 // text is different from the original
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1220 replace (n_str);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1221 get_current_position (&pos, &nline, &ncol);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1222
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1223 find_result_available = findFirst (o_str, re, cs, wo,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1224 false, true, nline, ncol);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1225 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1226 endUndoAction ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1227
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1228 // restore the visible area
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1229 setFirstVisibleLine (first_line);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1230
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1231 // fix cursor column if outside of new line length
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1232 int eol_len = eol_string ().length ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1233 if (line == lines () - 1)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1234 eol_len = 0;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1235 const int col_max = text (line).length () - eol_len;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1236 if (col_max < col)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1237 col = col_max;
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1238
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1239 setCursorPosition (line, col);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1240 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1241
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1242 bool
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1243 octave_qscintilla::event (QEvent *e)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1244 {
33359
689d4d069bbf maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents: 33034
diff changeset
1245 if (m_debug_mode && e->type () == QEvent::ToolTip)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1246 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1247 // FIXME: can we handle display of a tooltip using an
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1248 // interpreter event or a custom signal/slot connection?
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1249
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1250 QHelpEvent *help_e = static_cast<QHelpEvent *> (e);
33359
689d4d069bbf maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents: 33034
diff changeset
1251 QString symbol = wordAtPoint (help_e->pos ());
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1252
33599
7f18c537e101 maint: Update Qt macros to avoid name collisions
Arun Giridhar <arungiridhar@gmail.com>
parents: 33512
diff changeset
1253 Q_EMIT show_symbol_tooltip_signal (help_e->globalPos (), symbol);
23236
4cd5f975d26c automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents: 23234
diff changeset
1254
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1255 return true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1256 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1257
33359
689d4d069bbf maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents: 33034
diff changeset
1258 return QsciScintilla::event (e);
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1259 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1260
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1261 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1262 octave_qscintilla::keyPressEvent (QKeyEvent *key_event)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1263 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1264 if (m_selection.isEmpty ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1265 QsciScintilla::keyPressEvent (key_event);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1266 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1267 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1268 int key = key_event->key ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1269 Qt::KeyboardModifiers modifiers = key_event->modifiers ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23807
diff changeset
1270
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1271 if (key == Qt::Key_Return && modifiers == Qt::ShiftModifier)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1272 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1273 replace_all (m_selection, m_selection_replacement,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1274 false, true, true);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1275
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1276 // Clear the selection.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1277 set_word_selection ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1278 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1279 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1280 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1281 // The idea here is to allow backspace to remove the last
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1282 // character of the replacement text to allow minimal editing
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1283 // and to also end the selection replacement action if text is
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1284 // not valid as a word constituent (control characters,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1285 // etc.). Is there a better way than having special cases for
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1286 // DEL and ESC here?
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1287
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1288 QString text = key_event->text ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1289
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1290 bool cancel_replacement = false;
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23807
diff changeset
1291
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1292 if (key == Qt::Key_Backspace)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1293 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1294 if (m_selection_replacement.isEmpty ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1295 cancel_replacement = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1296 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1297 m_selection_replacement.chop (1);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1298 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1299 else if (key == Qt::Key_Delete || key == Qt::Key_Escape)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1300 cancel_replacement = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1301 else if (! text.isEmpty ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1302 m_selection_replacement += text;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1303 else if (modifiers != Qt::ShiftModifier)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1304 cancel_replacement = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1305
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1306 // Perform default action.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1307
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1308 QsciScintilla::keyPressEvent (key_event);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1309
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1310 if (cancel_replacement)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1311 set_word_selection ();
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23807
diff changeset
1312
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1313 if (! m_selection_replacement.isEmpty ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1314 show_replace_action_tooltip ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1315 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1316 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1317 }
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23807
diff changeset
1318
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1319 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1320 octave_qscintilla::auto_close (int auto_endif, int linenr,
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1321 const QString& line, QString& first_word)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1322 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1323 // Insert an "end" for an "if" etc., if needed.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1324 // (Use of "while" allows "return" to skip the rest.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1325 // It may be clearer to use "if" and "goto",
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1326 // but that violates the coding standards.)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1327
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1328 bool autofill_simple_end = (auto_endif == 2);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1329
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1330 std::size_t start = line.toStdString ().find_first_not_of (" \t");
24020
387be1a6c3dc style fixes for GUI editor
John W. Eaton <jwe@octave.org>
parents: 23807
diff changeset
1331
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1332 // Check if following line has the same or less indentation
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1333 // Check if the following line does not start with
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1334 // end* (until) (catch)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1335 if (linenr < lines () - 1)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1336 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1337 int offset = 2; // linenr is the old line, thus, linnr+1 is the
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1338 // new one and can not be taken into account
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1339 std::size_t next_start;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1340 QString next_line;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1341
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1342 do // find next non-blank line
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1343 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1344 next_line = text (linenr + offset++);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1345 next_start = next_line.toStdString ().find_first_not_of (" \t\n");
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1346 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1347 while (linenr + offset < lines ()
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1348 && next_start == std::string::npos);
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1349
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1350 if (next_start == std::string::npos)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1351 next_start = 0;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1352 if (start == 0 && next_start == 0)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1353 return; // bug #56160, don't add at 0
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1354 if (next_start > start) // more indented => don't add "end"
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1355 return;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1356 if (next_start == start) // same => check if already is "end"
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1357 {
31997
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
1358 QRegularExpression rx_start {R"((\w+))"};
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
1359 QRegularExpressionMatch match = rx_start.match (next_line, start);
7e92d6468a35 Replace deprecated QRegExp by QRegularExpression in libgui/src/m-editor.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31995
diff changeset
1360 if (match.hasMatch () && is_end (match.captured (1), first_word))
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1361 return;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1362 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1363 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1364
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1365 // If all of the above, insert a new line, with matching indent
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1366 // and either 'end' or 'end...', depending on a flag.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1367
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1368 // If we insert directly after the last line, the "end" is autoindented,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1369 // so add a dummy line.
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1370 if (linenr + 2 == lines ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1371 insertAt (QString ("\n"), linenr + 2, 0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1372
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1373 // For try/catch/end, fill "end" first, so "catch" is top of undo stack
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1374 if (first_word == "try")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1375 insertAt (QString (start, ' ')
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1376 + (autofill_simple_end ? "end\n" : "end_try_catch\n"),
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1377 linenr + 2, 0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1378 else if (first_word == "unwind_protect")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1379 insertAt (QString (start, ' ')
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1380 + (autofill_simple_end ? "end\n" : "end_unwind_protect\n"),
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1381 linenr + 2, 0);
25796
052a0d5dfd2c Reenable drag and drop of editor text (Bug #54495)
John Donoghue
parents: 25523
diff changeset
1382
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1383 QString next_line;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1384 if (first_word == "do")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1385 next_line = "until\n";
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1386 else if (first_word == "try")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1387 next_line = "catch\n";
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1388 else if (first_word == "unwind_protect")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1389 next_line = "unwind_protect_cleanup\n";
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1390 else if (autofill_simple_end)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1391 next_line = "end\n";
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1392 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1393 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1394 if (first_word == "unwind_protect")
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1395 first_word = '_' + first_word;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1396 next_line = "end" + first_word + "\n";
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1397 }
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1398
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1399 //insertAt (QString (start, ' ') + next_line, linenr + 2, 0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1400 insertAt (next_line, linenr + 2, 0);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1401 setIndentation (linenr + 2, indentation (linenr));
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1402 }
28798
82ccc4e69ba3 show value in editor when hovering over variable in debug mode (bug #56990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28548
diff changeset
1403
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1404 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1405 octave_qscintilla::dragEnterEvent (QDragEnterEvent *e)
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1406 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1407 // if is not dragging a url, pass to qscintilla to handle,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1408 // otherwise ignore it so that it will be handled by
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1409 // the parent
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1410 if (!e->mimeData ()->hasUrls ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1411 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1412 QsciScintilla::dragEnterEvent (e);
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1413 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1414 else
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1415 {
33359
689d4d069bbf maint: Use Octave coding convention of space between function name and parentheses in libgui/.
Rik <rik@octave.org>
parents: 33034
diff changeset
1416 e->ignore ();
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1417 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1418 }
28798
82ccc4e69ba3 show value in editor when hovering over variable in debug mode (bug #56990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28548
diff changeset
1419
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1420 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1421 octave_qscintilla::handle_enter_debug_mode ()
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1422 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1423 m_debug_mode = true;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1424 }
28798
82ccc4e69ba3 show value in editor when hovering over variable in debug mode (bug #56990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28548
diff changeset
1425
32592
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1426 void
094a296b3ba1 maint: C++ style check for libgui/ directory.
Rik <rik@octave.org>
parents: 31997
diff changeset
1427 octave_qscintilla::handle_exit_debug_mode ()
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1428 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1429 m_debug_mode = false;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1430 }
31690
1a1f47f17ed4 eliminate resource_manager class
John W. Eaton <jwe@octave.org>
parents: 31649
diff changeset
1431
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1432 QPointer<QTemporaryFile>
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1433 octave_qscintilla::create_tmp_file (const QString& extension,
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1434 const QString& contents)
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1435 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1436 QString ext = extension;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1437 if ((! ext.isEmpty ()) && (! ext.startsWith ('.')))
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1438 ext = QString (".") + ext;
31648
29d734430e5f maint: Re-indent code after switch to using namespace macros.
John W. Eaton <jwe@octave.org>
parents: 31646
diff changeset
1439
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1440 // Create octave dir within temp. dir
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1441 QString tmp_dir = QString::fromStdString (sys::env::get_temp_directory ());
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1442
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1443 QString tmp_name = tmp_dir + QDir::separator() + "octave_XXXXXX" + ext;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1444
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1445 QPointer<QTemporaryFile> tmp_file (new QTemporaryFile (tmp_name, this));
31690
1a1f47f17ed4 eliminate resource_manager class
John W. Eaton <jwe@octave.org>
parents: 31649
diff changeset
1446
31808
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1447 if (! contents.isEmpty () && tmp_file && tmp_file->open ())
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1448 {
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1449 tmp_file->write (contents.toUtf8 ());
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1450 tmp_file->close ();
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1451 }
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1452
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1453 return tmp_file;
90621682cc03 maint: Remove unnecessary indent after OCTAVE_BEGIN_NAMESPACE in libgui/
Rik <rik@octave.org>
parents: 31771
diff changeset
1454 }
28798
82ccc4e69ba3 show value in editor when hovering over variable in debug mode (bug #56990)
Torsten Lilge <ttl-octave@mailbox.org>
parents: 28548
diff changeset
1455
31646
c6d54dd31a7e maint: Use macros to begin/end C++ namespaces.
John W. Eaton <jwe@octave.org>
parents: 31354
diff changeset
1456 OCTAVE_END_NAMESPACE(octave)
23236
4cd5f975d26c automatically add a comment string when line breaking in line comments
Torsten <mttl@mailbox.org>
parents: 23234
diff changeset
1457
16731
01d523d5f796 add help for word at mouse or text cursor to the editors context menu
Torsten <ttl@justmail.de>
parents:
diff changeset
1458 #endif