11#include < wx/notebook.h>
22#include < wx/textctrl.h>
33#include < wx/regex.h>
4- #include " PythonInterpCtrl.h"
5- #include < globals.h>
4+ #include < wx/fontutil.h>
65
6+ #include < wx/wxscintilla.h>
77#include < cbcolourmanager.h>
8+ #include < configmanager.h>
9+ #include < editorcolourset.h>
10+ #include < globals.h>
11+ #include < infowindow.h>
12+ #include < logmanager.h>
13+
14+ #include " PythonInterpCtrl.h"
15+
816
917// DECLARE_LOCAL_EVENT_TYPE(wxEVT_PY_NOTIFY_UI_CODEOK, -1)
1018DEFINE_EVENT_TYPE ( wxEVT_PY_NOTIFY_UI_CODEOK )
@@ -166,17 +174,17 @@ PythonCodeCtrl::PythonCodeCtrl(wxWindow *parent, PythonInterpCtrl *py)
166174 if (mgr->ReadBool (_T (" /camel_case" ), false ))
167175 {
168176 // consider CamelCase for both: cursor movement with CTRL and selection with CTRL+SHIFT:
169- CmdKeyAssign (wxSCI_KEY_LEFT, wxSCI_SCMOD_CTRL , wxSCI_CMD_WORDPARTLEFT);
170- CmdKeyAssign (wxSCI_KEY_RIGHT, wxSCI_SCMOD_CTRL , wxSCI_CMD_WORDPARTRIGHT);
171- CmdKeyAssign (wxSCI_KEY_LEFT, wxSCI_SCMOD_CTRL|wxSCI_SCMOD_SHIFT , wxSCI_CMD_WORDPARTLEFTEXTEND);
172- CmdKeyAssign (wxSCI_KEY_RIGHT, wxSCI_SCMOD_CTRL|wxSCI_SCMOD_SHIFT , wxSCI_CMD_WORDPARTRIGHTEXTEND);
177+ CmdKeyAssign (wxSCI_KEY_LEFT, wxSCI_KEYMOD_CTRL , wxSCI_CMD_WORDPARTLEFT);
178+ CmdKeyAssign (wxSCI_KEY_RIGHT, wxSCI_KEYMOD_CTRL , wxSCI_CMD_WORDPARTRIGHT);
179+ CmdKeyAssign (wxSCI_KEY_LEFT, wxSCI_KEYMOD_CTRL|wxSCI_KEYMOD_SHIFT , wxSCI_CMD_WORDPARTLEFTEXTEND);
180+ CmdKeyAssign (wxSCI_KEY_RIGHT, wxSCI_KEYMOD_CTRL|wxSCI_KEYMOD_SHIFT , wxSCI_CMD_WORDPARTRIGHTEXTEND);
173181 }
174182 else // else set default "none CamelCase" key behavior (also default scintilla behaviour, see scintilla docs)
175183 {
176- CmdKeyAssign (wxSCI_KEY_LEFT, wxSCI_SCMOD_CTRL , wxSCI_CMD_WORDLEFT);
177- CmdKeyAssign (wxSCI_KEY_RIGHT, wxSCI_SCMOD_CTRL , wxSCI_CMD_WORDRIGHT);
178- CmdKeyAssign (wxSCI_KEY_LEFT, wxSCI_SCMOD_CTRL|wxSCI_SCMOD_SHIFT , wxSCI_CMD_WORDLEFTEXTEND);
179- CmdKeyAssign (wxSCI_KEY_RIGHT, wxSCI_SCMOD_CTRL|wxSCI_SCMOD_SHIFT , wxSCI_CMD_WORDRIGHTEXTEND);
184+ CmdKeyAssign (wxSCI_KEY_LEFT, wxSCI_KEYMOD_CTRL , wxSCI_CMD_WORDLEFT);
185+ CmdKeyAssign (wxSCI_KEY_RIGHT, wxSCI_KEYMOD_CTRL , wxSCI_CMD_WORDRIGHT);
186+ CmdKeyAssign (wxSCI_KEY_LEFT, wxSCI_KEYMOD_CTRL|wxSCI_KEYMOD_SHIFT , wxSCI_CMD_WORDLEFTEXTEND);
187+ CmdKeyAssign (wxSCI_KEY_RIGHT, wxSCI_KEYMOD_CTRL|wxSCI_KEYMOD_SHIFT , wxSCI_CMD_WORDRIGHTEXTEND);
180188 }
181189
182190 SetUseTabs (mgr->ReadBool (_T (" /use_tab" ), false ));
@@ -190,42 +198,42 @@ PythonCodeCtrl::PythonCodeCtrl(wxWindow *parent, PythonInterpCtrl *py)
190198 // otherwise to the start/end of the entire line.
191199 // alt+home/end go to start/end of the entire line.
192200 // in unwrapped mode, there is no difference between home/end and alt+home/end
193- CmdKeyAssign (wxSCI_KEY_END, wxSCI_SCMOD_NORM , wxSCI_CMD_LINEENDWRAP);
194- CmdKeyAssign (wxSCI_KEY_END, wxSCI_SCMOD_ALT , wxSCI_CMD_LINEEND);
195- CmdKeyAssign (wxSCI_KEY_END, wxSCI_SCMOD_SHIFT , wxSCI_CMD_LINEENDWRAPEXTEND);
196- CmdKeyAssign (wxSCI_KEY_END, wxSCI_SCMOD_SHIFT|wxSCI_SCMOD_ALT , wxSCI_CMD_LINEENDEXTEND);
201+ CmdKeyAssign (wxSCI_KEY_END, wxSCI_KEYMOD_NORM , wxSCI_CMD_LINEENDWRAP);
202+ CmdKeyAssign (wxSCI_KEY_END, wxSCI_KEYMOD_ALT , wxSCI_CMD_LINEEND);
203+ CmdKeyAssign (wxSCI_KEY_END, wxSCI_KEYMOD_SHIFT , wxSCI_CMD_LINEENDWRAPEXTEND);
204+ CmdKeyAssign (wxSCI_KEY_END, wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT , wxSCI_CMD_LINEENDEXTEND);
197205
198206 // if user wants "Home" key to set cursor to the very beginning of line
199207 if (mgr->ReadBool (_T (" /simplified_home" ), false ))
200208 {
201- CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_SCMOD_NORM ,wxSCI_CMD_HOMEWRAP);
202- CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_SCMOD_ALT ,wxSCI_CMD_HOME);
203- CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_SCMOD_SHIFT ,wxSCI_CMD_HOMEWRAPEXTEND);
204- CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_SCMOD_SHIFT|wxSCI_SCMOD_ALT ,wxSCI_CMD_HOMEEXTEND);
209+ CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_KEYMOD_NORM ,wxSCI_CMD_HOMEWRAP);
210+ CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_KEYMOD_ALT ,wxSCI_CMD_HOME);
211+ CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT ,wxSCI_CMD_HOMEWRAPEXTEND);
212+ CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT ,wxSCI_CMD_HOMEEXTEND);
205213 }
206214 else // else set default "Home" key behavior
207215 {
208- CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_SCMOD_NORM ,wxSCI_CMD_VCHOMEWRAP);
209- CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_SCMOD_ALT ,wxSCI_CMD_VCHOME);
210- CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_SCMOD_SHIFT ,wxSCI_CMD_VCHOMEWRAPEXTEND);
211- CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_SCMOD_SHIFT|wxSCI_SCMOD_ALT ,wxSCI_CMD_VCHOMEEXTEND);
216+ CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_KEYMOD_NORM ,wxSCI_CMD_VCHOMEWRAP);
217+ CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_KEYMOD_ALT ,wxSCI_CMD_VCHOME);
218+ CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT ,wxSCI_CMD_VCHOMEWRAPEXTEND);
219+ CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT ,wxSCI_CMD_VCHOMEEXTEND);
212220 }
213221 }
214222 else
215223 { // in word wrap mode, home/end keys goto start/end of the entire line. alt+home/end goes to wrap points
216- CmdKeyAssign (wxSCI_KEY_END, wxSCI_SCMOD_ALT , wxSCI_CMD_LINEENDWRAP);
217- CmdKeyAssign (wxSCI_KEY_END, wxSCI_SCMOD_SHIFT|wxSCI_SCMOD_ALT , wxSCI_CMD_LINEENDWRAPEXTEND);
224+ CmdKeyAssign (wxSCI_KEY_END, wxSCI_KEYMOD_ALT , wxSCI_CMD_LINEENDWRAP);
225+ CmdKeyAssign (wxSCI_KEY_END, wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT , wxSCI_CMD_LINEENDWRAPEXTEND);
218226
219227 // if user wants "Home" key to set cursor to the very beginning of line
220228 if (mgr->ReadBool (_T (" /simplified_home" ), false ))
221229 {
222- CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_SCMOD_ALT ,wxSCI_CMD_HOMEWRAP);
223- CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_SCMOD_SHIFT|wxSCI_SCMOD_ALT ,wxSCI_CMD_HOMEWRAPEXTEND);
230+ CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_KEYMOD_ALT ,wxSCI_CMD_HOMEWRAP);
231+ CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT ,wxSCI_CMD_HOMEWRAPEXTEND);
224232 }
225233 else // else set default "Home" key behavior
226234 {
227- CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_SCMOD_ALT ,wxSCI_CMD_VCHOMEWRAP);
228- CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_SCMOD_SHIFT|wxSCI_SCMOD_ALT ,wxSCI_CMD_VCHOMEWRAPEXTEND);
235+ CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_KEYMOD_ALT ,wxSCI_CMD_VCHOMEWRAP);
236+ CmdKeyAssign (wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT ,wxSCI_CMD_VCHOMEWRAPEXTEND);
229237 }
230238 }
231239 SetViewEOL (mgr->ReadBool (_T (" /show_eol" ), false ));
@@ -241,7 +249,7 @@ PythonCodeCtrl::PythonCodeCtrl(wxWindow *parent, PythonInterpCtrl *py)
241249 SetTabWidth (mgr->ReadInt (_T (" /tab_size" ), 4 ));
242250 SetIndent (mgr->ReadInt (_T (" /tab_size" ), 4 )); // NEEDED FOR AUTO INDENTATION (NOT IN CB EDITOR)
243251
244- em->GetColourSet ()->Apply (_ ( " Python" ),this );
252+ em->GetColourSet ()->Apply (HighlightLanguage ( wxT ( " Python" )) ,this , false , true );
245253
246254}
247255
0 commit comments