Skip to content

Commit d54a2b4

Browse files
authored
Merge pull request bruderstein#94 from ClaudiaFrank/documentation_updates
several documentation updates
2 parents 831a60f + 1247c72 commit d54a2b4

File tree

13 files changed

+1304
-1081
lines changed

13 files changed

+1304
-1081
lines changed

PythonScript/src/ConsoleDialog.cpp

Lines changed: 21 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ ConsoleDialog::ConsoleDialog() :
2222
m_scintilla(NULL),
2323
m_hInput(NULL),
2424
m_console(NULL),
25-
m_prompt(">>> "),
25+
m_currentPrompt(">>> "),
26+
m_standardPrompt(">>> "),
27+
m_continuePrompt("... "),
2628
m_originalInputWndProc(NULL),
2729
m_hTabIcon(NULL),
2830
m_currentHistory(0),
@@ -84,8 +86,8 @@ void ConsoleDialog::initDialog(HINSTANCE hInst, NppData& nppData, ConsoleInterfa
8486
{
8587
m_colorOutput = false;
8688
}
87-
m_prompt = ConfigFile::getInstance()->getSetting(_T("ADDEXTRALINETOOUTPUT")) == _T("1") ? m_prompt.insert(0, "\n") : m_prompt;
88-
89+
m_standardPrompt = ConfigFile::getInstance()->getSetting(_T("ADDEXTRALINETOOUTPUT")) == _T("1") ? m_standardPrompt.insert(0, "\n") : m_standardPrompt;
90+
m_currentPrompt = m_standardPrompt;
8991
//Window::init(hInst, nppData._nppHandle);
9092
createOutputWindow(nppData._nppHandle);
9193

@@ -433,7 +435,7 @@ void ConsoleDialog::runStatement()
433435
std::shared_ptr<char> charBuffer = WcharMbcsConverter::tchar2char(buffer);
434436
delete [] buffer;
435437

436-
writeCmdText(m_prompt.size(), m_prompt.c_str());
438+
writeCmdText(m_currentPrompt.size(), m_currentPrompt.c_str());
437439
writeCmdText(strlen(charBuffer.get()), charBuffer.get());
438440
writeCmdText(1, "\n");
439441
SetWindowText(hText, _T(""));
@@ -452,16 +454,16 @@ void ConsoleDialog::stopStatement()
452454
}
453455

454456

455-
void ConsoleDialog::setPrompt(const char *prompt)
457+
void ConsoleDialog::setPrompt(std::string prompt)
456458
{
457-
m_prompt = prompt;
458-
::SetWindowTextA(::GetDlgItem(_hSelf, IDC_PROMPT), (m_prompt.rfind('\n', 0) == 0) ? m_prompt.substr(1, m_prompt.size() - 1).c_str() : m_prompt.c_str());
459+
m_currentPrompt = prompt;
460+
::SetWindowTextA(::GetDlgItem(_hSelf, IDC_PROMPT), (prompt.rfind('\n', 0) == 0) ? prompt.substr(1, prompt.size() - 1).c_str() : prompt.c_str());
459461
}
460462

461-
const char * ConsoleDialog::getPrompt()
462-
{
463-
return m_prompt.c_str();
464-
}
463+
std::string ConsoleDialog::getStandardPrompt(){ return m_standardPrompt;}
464+
465+
std::string ConsoleDialog::getContinuePrompt(){ return m_continuePrompt;}
466+
465467

466468
void ConsoleDialog::createOutputWindow(HWND hParentWindow)
467469
{
@@ -510,12 +512,10 @@ void ConsoleDialog::createOutputWindow(HWND hParentWindow)
510512
callScintilla(SCI_STYLESETSIZE, 4 /* = style number */, 8 /* = size in points */);
511513
callScintilla(SCI_STYLESETFORE, 4, RGB(199, 175, 7)); // mucky yellow
512514

513-
514515
// 5 stderr warning without hotspot
515516
callScintilla(SCI_STYLESETSIZE, 5 /* = style number */, 8 /* = size in points */);
516517
callScintilla(SCI_STYLESETFORE, 5, RGB(255, 128, 64)); // orange
517518

518-
519519
// 6 is hotspot, stdout, warning
520520
callScintilla(SCI_STYLESETSIZE, 6 /* = style number */, 8 /* = size in points */);
521521
callScintilla(SCI_STYLESETFORE, 6, RGB(199, 175, 7)); // mucky yellow
@@ -528,14 +528,13 @@ void ConsoleDialog::createOutputWindow(HWND hParentWindow)
528528
callScintilla(SCI_STYLESETUNDERLINE, 7 /* = style number */, 1 /* = underline */);
529529
callScintilla(SCI_STYLESETHOTSPOT, 7, 1);
530530

531-
// 8 is colored stdout
532-
callScintilla(SCI_STYLESETSIZE, 8 /* = style number */, 8 /* = size in points */);
533-
callScintilla(SCI_STYLESETFORE, 8, m_colorOutput ? m_user_color : 0); // green
534-
531+
// 8 is colored stdout inidcator
532+
intptr_t defaultColor = callScintilla(SCI_STYLEGETFORE, 0, 0);
533+
callScintilla(SCI_INDICSETSTYLE, 8 /* = indicator number */, INDIC_TEXTFORE);
534+
callScintilla(SCI_INDICSETFORE, 8, m_colorOutput ? m_user_color : defaultColor); // green
535+
535536
callScintilla(SCI_USEPOPUP, 0);
536537
callScintilla(SCI_SETLEXER, SCLEX_CONTAINER);
537-
538-
539538
}
540539

541540
LRESULT ConsoleDialog::scintillaWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
@@ -609,35 +608,18 @@ void ConsoleDialog::writeText(size_t length, const char *text)
609608
void ConsoleDialog::writeColoredText(size_t length, const char *text)
610609
{
611610
size_t docLength = (size_t)callScintilla(SCI_GETLENGTH);
612-
size_t realLength = length;
613611
callScintilla(SCI_SETREADONLY, 0);
614-
for (idx_t i = 0; i < length; ++i)
615-
{
616-
if (text[i] == '\r')
617-
{
618-
if (i)
619-
{
620-
callScintilla(SCI_APPENDTEXT, i, reinterpret_cast<LPARAM>(text));
621-
}
622-
text += i + 1;
623-
length -= i + 1;
624-
realLength--;
625-
i = 0;
626-
}
627-
}
628612

629613
if (length > 0)
630614
{
631615
callScintilla(SCI_APPENDTEXT, length, reinterpret_cast<LPARAM>(text));
632616
}
633617

634618
callScintilla(SCI_SETREADONLY, 1);
635-
callScintilla(SCI_STARTSTYLING, docLength, 0x01);
636-
callScintilla(SCI_SETSTYLING, realLength, m_colorOutput ? 8 : 0);
637-
638619

639-
callScintilla(SCI_COLOURISE, docLength, -1);
640-
callScintilla(SCI_GOTOPOS, docLength + realLength);
620+
callScintilla(SCI_SETINDICATORCURRENT, 8);
621+
callScintilla(SCI_INDICATORFILLRANGE, docLength, length);
622+
callScintilla(SCI_GOTOPOS, docLength+length);
641623
}
642624

643625
void ConsoleDialog::writeError(size_t length, const char *text)

PythonScript/src/ConsoleDialog.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@ class ConsoleDialog : public DockingDlgInterface
3232
void writeColoredText(size_t length, const char *text);
3333
void writeError(size_t length, const char *text);
3434
void clearText();
35-
void setPrompt(const char *prompt);
36-
const char * getPrompt();
35+
void setPrompt(std::string prompt);
36+
std::string getStandardPrompt();
37+
std::string getContinuePrompt();
3738
HWND getScintillaHwnd() { return m_scintilla; }
3839

3940
void giveInputFocus() { SetFocus(m_hInput); }
@@ -83,7 +84,9 @@ class ConsoleDialog : public DockingDlgInterface
8384
static WNDPROC s_originalScintillaWndProc;
8485
HWND m_hInput; // Input TextBox
8586
ConsoleInterface *m_console;
86-
std::string m_prompt;
87+
std::string m_standardPrompt;
88+
std::string m_continuePrompt;
89+
std::string m_currentPrompt;
8790
WNDPROC m_originalInputWndProc;
8891
HICON m_hTabIcon;
8992

PythonScript/src/CreateWrapper.py

Lines changed: 66 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,7 @@
7878

7979
}
8080

81-
exclusions = [ 'FormatRange', 'GetCharacterPointer', 'GetRangePointer' ]
82-
83-
def Contains(s,sub):
84-
return s.find(sub) != -1
81+
exclusions = [ 'FormatRange',]
8582

8683

8784
def symbolName(v):
@@ -317,6 +314,56 @@ def annotationSetTextBody(v, out):
317314
'''.format(v["Param2Name"], v["Param2Name"], symbolName(v), v["Param1Name"]))
318315

319316

317+
def getSetDocPointerBody(v, out):
318+
traceCall(v, out)
319+
checkDisallowedInCallback(v, out)
320+
out.write(
321+
''' callScintilla({0}, 0, {1});
322+
'''.format(symbolName(v), v["Param2Name"]))
323+
324+
325+
def getAddRefDocumentBody(v, out):
326+
traceCall(v, out)
327+
checkDisallowedInCallback(v, out)
328+
out.write(
329+
''' callScintilla({0}, 0, {1});
330+
'''.format(symbolName(v), v["Param2Name"]))
331+
332+
333+
def getReleaseDocumentBody(v, out):
334+
traceCall(v, out)
335+
checkDisallowedInCallback(v, out)
336+
out.write(
337+
''' callScintilla({0}, 0, {1});
338+
'''.format(symbolName(v), v["Param2Name"]))
339+
340+
341+
def getPrivateLexerCallBody(v, out):
342+
traceCall(v, out)
343+
checkDisallowedInCallback(v, out)
344+
out.write(
345+
''' return callScintilla({0}, {1}, {2});
346+
'''.format(symbolName(v), v["Param1Name"], v["Param2Name"]))
347+
348+
349+
def getGetRangePointerBody(v, out):
350+
out.write(
351+
''' GILRelease release;
352+
const char *charPtr = reinterpret_cast<const char*>(callScintilla({0}, {2}, {3}));
353+
release.reacquire();
354+
return {1}(charPtr, charPtr + {3});
355+
'''.format(symbolName(v), v["ReturnType"], v["Param1Name"], v["Param2Name"]))
356+
357+
358+
def getGetCharacterPointerBody(v, out):
359+
out.write(
360+
''' GILRelease release;
361+
const char *charPtr = reinterpret_cast<const char*>(callScintilla({0}));
362+
release.reacquire();
363+
return {1}(charPtr);
364+
'''.format(symbolName(v), v["ReturnType"]))
365+
366+
320367
def standardBody(v, out):
321368
# We always release the GIL. For standard getters, this shouldn't really be necessary.
322369
# However, it doesn't appear to affect performance to dramatically (yet!), so we'll leave it in until
@@ -409,7 +456,13 @@ def getPythonParamNamesQuoted(param1Type, param1Name, param2Type, param2Name):
409456
specialCases = {
410457
'GetStyledText' : ('boost::python::tuple', 'int', 'start', 'int', 'end', getStyledTextBody),
411458
'GetLine': ('boost::python::str', 'int', 'line', '', '', getLineBody),
412-
'AnnotationSetText' : ('void', 'int', 'line', 'boost::python::object', 'text', annotationSetTextBody)
459+
'AnnotationSetText' : ('void', 'int', 'line', 'boost::python::object', 'text', annotationSetTextBody),
460+
'SetDocPointer' :('void', '','','intptr_t', 'pointer', getSetDocPointerBody),
461+
'AddRefDocument' :('void', '','', 'intptr_t', 'doc', getAddRefDocumentBody),
462+
'ReleaseDocument' :('void', '','', 'intptr_t', 'doc', getReleaseDocumentBody),
463+
'PrivateLexerCall' :('intptr_t', 'intptr_t','operation','intptr_t', 'pointer', getPrivateLexerCallBody),
464+
'GetCharacterPointer' :('boost::python::str', '','','', '', getGetCharacterPointerBody),
465+
'GetRangePointer' :('boost::python::str', 'int','position','int', 'rangeLength', getGetRangePointerBody)
413466
}
414467

415468

@@ -496,16 +549,14 @@ class PythonCompatibleStrBuffer
496549
sig = mapSignature((v["Param1Type"], v["Param1Name"], v["Param2Type"], v["Param2Name"]))
497550

498551
if sig is not None:
499-
# print '{:<45} {} ==>> {}'.format(v["Name"], v["ReturnType"], sig[0])
500-
v["ReturnType"] = 'intptr_t' if sig[0] == 'int' else sig[0]
552+
v["ReturnType"] = 'intptr_t' if sig[0] in ['int', 'int pointer'] else sig[0]
501553
v["Param1Type"] = sig[1]
502554
v["Param2Type"] = sig[2]
555+
503556
body = sig[3]
504557
else:
505-
# print '{:<45} {} -->> {}'.format(v["Name"], v["ReturnType"], mapType(v["ReturnType"]))
506558
#if !checkStandardTypeIsKnown(v["ReturnType", v["Param1Type"], v["Param1Name"], v["Param2Type"], v["Param2Name"]):
507559
# print("Warning: unrecognised parameter combination for {0}({1} {2}, {3} {4})".format(v["Name"], v["Param1Type"], v["Param1Name"], v["Param2Type"], v["Param2Name"]))
508-
509560
v["ReturnType"] = 'intptr_t' if v["ReturnType"] in ['int', 'position'] else mapType(v["ReturnType"])
510561
v["Param1Type"] = mapType(v["Param1Type"])
511562
v["Param2Type"] = mapType(v["Param2Type"])
@@ -568,7 +619,7 @@ def writeHFile(f,out):
568619

569620
out.write("\t/** " + "\n\t * ".join(v["Comment"]) + "\n */\n")
570621

571-
out.write("\t");
622+
out.write("\t")
572623
out.write(getSignature(v).replace(' ScintillaWrapper::', ' '))
573624
out.write(";\n\n")
574625

@@ -659,7 +710,7 @@ def writeEnumsWrapperFile(f, out):
659710
out.write('\n\t\t.value("{0}", PYSCR_{1})'.format(val[0][takeEnumValueFromPosition:].upper(), val[0]))
660711
out.write(';\n\n')
661712

662-
out.write('\tboost::python::enum_<ScintillaNotification>("SCINTILLANOTIFICATION")'.format(name, name.upper()))
713+
out.write('\tboost::python::enum_<ScintillaNotification>("SCINTILLANOTIFICATION")') #.format(name, name.upper()))
663714

664715
for name in f.order:
665716
v = f.features[name]
@@ -668,7 +719,7 @@ def writeEnumsWrapperFile(f, out):
668719
out.write('\n\t\t.value("{0}", PYSCR_SCN_{1})'.format(name.upper(), name.upper()))
669720
out.write(';\n\n')
670721

671-
out.write('\tboost::python::enum_<ScintillaMessage>("SCINTILLAMESSAGE")'.format(name, name.upper()))
722+
out.write('\tboost::python::enum_<ScintillaMessage>("SCINTILLAMESSAGE")') #.format(name, name.upper()))
672723
for name in f.order:
673724
v = f.features[name]
674725
if v["Category"] != "Deprecated":
@@ -688,7 +739,7 @@ def writeScintillaDoc(f, out):
688739
continue
689740

690741
if v["Name"] in specialCases:
691-
(v["ReturnType"], v["Param1Type"], v["Param1Name"], v["Param2Type"], v["Param2Name"], body) = specialCases[v["Name"]]
742+
(v["ReturnType"], v["Param1Type"], v["Param1Name"], v["Param2Type"], v["Param2Name"], _) = specialCases[v["Name"]]
692743
else:
693744
sig = mapSignature((v["Param1Type"], v["Param1Name"], v["Param2Type"], v["Param2Name"]))
694745

@@ -765,10 +816,10 @@ def CopyWithInsertion(input, output, genfn, definition):
765816
for line in input.readlines():
766817
if copying:
767818
output.write(line)
768-
if Contains(line, "/* ++Autogenerated"):
819+
if "/* ++Autogenerated" in line:
769820
copying = 0
770821
genfn(definition, output)
771-
if Contains(line, "/* --Autogenerated"):
822+
if "/* --Autogenerated" in line:
772823
copying = 1
773824
output.write(line)
774825

0 commit comments

Comments
 (0)