From 1436d7b77f2e51485627d45eb015261eb8953a1b Mon Sep 17 00:00:00 2001 From: mitchell <70453897+667e-11@users.noreply.github.com> Date: Tue, 9 Dec 2014 13:30:54 -0500 Subject: Updated to Scintilla 3.5.2. --- core/.buffer.luadoc | 2 + core/iface.lua | 2 +- src/Makefile | 2 +- src/scintilla.patch | 278 ---------------------------------------------------- 4 files changed, 4 insertions(+), 280 deletions(-) diff --git a/core/.buffer.luadoc b/core/.buffer.luadoc index a1424c32..37fde7d3 100644 --- a/core/.buffer.luadoc +++ b/core/.buffer.luadoc @@ -60,6 +60,8 @@ -- * `buffer.ANNOTATION_BOXED` -- Indent annotations to match the annotated text and outline them with a -- box. +-- * `buffer.ANNOTATION_INDENTED` +-- Indent non-decorated annotations to match the annotated text. -- -- The default value is `buffer.ANNOTATION_HIDDEN`. -- @field auto_c_auto_hide (bool) diff --git a/core/iface.lua b/core/iface.lua index 1af669d4..31ed0fad 100644 --- a/core/iface.lua +++ b/core/iface.lua @@ -14,7 +14,7 @@ module('_SCINTILLA')]] -- @class table -- @name constants -- @see _G.buffer -M.constants = {ALPHA_NOALPHA=256,ALPHA_OPAQUE=255,ALPHA_TRANSPARENT=0,ANNOTATION_BOXED=2,ANNOTATION_HIDDEN=0,ANNOTATION_STANDARD=1,AUTOMATICFOLD_CHANGE=0x0004,AUTOMATICFOLD_CLICK=0x0002,AUTOMATICFOLD_SHOW=0x0001,CARETSTICKY_OFF=0,CARETSTICKY_ON=1,CARETSTICKY_WHITESPACE=2,CARETSTYLE_BLOCK=2,CARETSTYLE_INVISIBLE=0,CARETSTYLE_LINE=1,CARET_EVEN=0x08,CARET_JUMPS=0x10,CARET_SLOP=0x01,CARET_STRICT=0x04,CASEINSENSITIVEBEHAVIOUR_IGNORECASE=1,CASEINSENSITIVEBEHAVIOUR_RESPECTCASE=0,CASE_LOWER=2,CASE_MIXED=0,CASE_UPPER=1,CP_UTF8=65001,CURSORARROW=2,CURSORNORMAL=-1,CURSORREVERSEARROW=7,CURSORWAIT=4,EDGE_BACKGROUND=2,EDGE_LINE=1,EDGE_NONE=0,EOL_CR=1,EOL_CRLF=0,EOL_LF=2,FIND_MATCHCASE=0x4,FIND_REGEXP=6291456,FIND_WHOLEWORD=0x2,FIND_WORDSTART=0x00100000,FOLDACTION_CONTRACT=0,FOLDACTION_EXPAND=1,FOLDACTION_TOGGLE=2,FOLDFLAG_LEVELNUMBERS=0x0040,FOLDFLAG_LINEAFTER_CONTRACTED=0x0010,FOLDFLAG_LINEAFTER_EXPANDED=0x0008,FOLDFLAG_LINEBEFORE_CONTRACTED=0x0004,FOLDFLAG_LINEBEFORE_EXPANDED=0x0002,FOLDFLAG_LINESTATE=0x0080,FOLDLEVELBASE=0x400,FOLDLEVELHEADERFLAG=0x2000,FOLDLEVELNUMBERMASK=0x0FFF,FOLDLEVELWHITEFLAG=0x1000,IME_INLINE=1,IME_WINDOWED=0,INDIC_BOX=6,INDIC_COMPOSITIONTHICK=14,INDIC_CONTAINER=8,INDIC_DASH=9,INDIC_DIAGONAL=3,INDIC_DOTBOX=12,INDIC_DOTS=10,INDIC_HIDDEN=5,INDIC_MAX=31,INDIC_PLAIN=0,INDIC_ROUNDBOX=7,INDIC_SQUIGGLE=1,INDIC_SQUIGGLELOW=11,INDIC_SQUIGGLEPIXMAP=13,INDIC_STRAIGHTBOX=8,INDIC_STRIKE=4,INDIC_TT=2,IV_LOOKBOTH=3,IV_LOOKFORWARD=2,IV_NONE=0,IV_REAL=1,LASTSTEPINUNDOREDO=0x100,MARGINOPTION_NONE=0,MARGINOPTION_SUBLINESELECT=1,MARGIN_BACK=2,MARGIN_FORE=3,MARGIN_NUMBER=1,MARGIN_RTEXT=5,MARGIN_SYMBOL=0,MARGIN_TEXT=4,MARKER_MAX=31,MARKNUM_FOLDER=30,MARKNUM_FOLDEREND=25,MARKNUM_FOLDERMIDTAIL=27,MARKNUM_FOLDEROPEN=31,MARKNUM_FOLDEROPENMID=26,MARKNUM_FOLDERSUB=29,MARKNUM_FOLDERTAIL=28,MARK_ARROW=2,MARK_ARROWDOWN=6,MARK_ARROWS=24,MARK_AVAILABLE=28,MARK_BACKGROUND=22,MARK_BOOKMARK=31,MARK_BOXMINUS=14,MARK_BOXMINUSCONNECTED=15,MARK_BOXPLUS=12,MARK_BOXPLUSCONNECTED=13,MARK_CHARACTER=10000,MARK_CIRCLE=0,MARK_CIRCLEMINUS=20,MARK_CIRCLEMINUSCONNECTED=21,MARK_CIRCLEPLUS=18,MARK_CIRCLEPLUSCONNECTED=19,MARK_DOTDOTDOT=23,MARK_EMPTY=5,MARK_FULLRECT=26,MARK_LCORNER=10,MARK_LCORNERCURVE=16,MARK_LEFTRECT=27,MARK_MINUS=7,MARK_PIXMAP=25,MARK_PLUS=8,MARK_RGBAIMAGE=30,MARK_ROUNDRECT=1,MARK_SHORTARROW=4,MARK_SMALLRECT=3,MARK_TCORNER=11,MARK_TCORNERCURVE=17,MARK_UNDERLINE=29,MARK_VLINE=9,MASK_FOLDERS=-33554432,MAX_MARGIN=4,MODEVENTMASKALL=0x3FFFFF,MOD_ALT=4,MOD_BEFOREDELETE=0x800,MOD_BEFOREINSERT=0x400,MOD_CHANGEANNOTATION=0x20000,MOD_CHANGEFOLD=0x8,MOD_CHANGEINDICATOR=0x4000,MOD_CHANGELINESTATE=0x8000,MOD_CHANGEMARGIN=0x10000,MOD_CHANGEMARKER=0x200,MOD_CHANGESTYLE=0x4,MOD_CHANGETABSTOPS=0x200000,MOD_CONTAINER=0x40000,MOD_CTRL=2,MOD_DELETETEXT=0x2,MOD_INSERTCHECK=0x100000,MOD_INSERTTEXT=0x1,MOD_LEXERSTATE=0x80000,MOD_META=16,MOD_NORM=0,MOD_SHIFT=1,MOD_SUPER=8,MOUSE_DRAG=2,MOUSE_PRESS=1,MOUSE_RELEASE=3,MULTIAUTOC_EACH=1,MULTIAUTOC_ONCE=0,MULTILINEUNDOREDO=0x1000,MULTIPASTE_EACH=1,MULTIPASTE_ONCE=0,MULTISTEPUNDOREDO=0x80,ORDER_CUSTOM=2,ORDER_PERFORMSORT=1,ORDER_PRESORTED=0,PERFORMED_REDO=0x40,PERFORMED_UNDO=0x20,PERFORMED_USER=0x10,PHASES_MULTIPLE=2,PHASES_ONE=0,PHASES_TWO=1,SCN_AUTOCCANCELLED=2025,SCN_AUTOCCHARDELETED=2026,SCN_AUTOCSELECTION=2022,SCN_CALLTIPCLICK=2021,SCN_CHARADDED=2001,SCN_DOUBLECLICK=2006,SCN_DWELLEND=2017,SCN_DWELLSTART=2016,SCN_FOCUSIN=2028,SCN_FOCUSOUT=2029,SCN_HOTSPOTCLICK=2019,SCN_HOTSPOTDOUBLECLICK=2020,SCN_HOTSPOTRELEASECLICK=2027,SCN_INDICATORCLICK=2023,SCN_INDICATORRELEASE=2024,SCN_KEY=2005,SCN_MACRORECORD=2009,SCN_MARGINCLICK=2010,SCN_MODIFIED=2008,SCN_MODIFYATTEMPTRO=2004,SCN_NEEDSHOWN=2011,SCN_PAINTED=2013,SCN_SAVEPOINTLEFT=2003,SCN_SAVEPOINTREACHED=2002,SCN_STYLENEEDED=2000,SCN_UPDATEUI=2007,SCN_URIDROPPED=2015,SCN_USERLISTSELECTION=2014,SCN_ZOOM=2018,SEL_LINES=2,SEL_RECTANGLE=1,SEL_STREAM=0,SEL_THIN=3,STARTACTION=0x2000,STYLE_BRACEBAD=35,STYLE_BRACELIGHT=34,STYLE_CALLTIP=38,STYLE_CONTROLCHAR=36,STYLE_DEFAULT=32,STYLE_INDENTGUIDE=37,STYLE_LASTPREDEFINED=39,STYLE_LINENUMBER=33,STYLE_MAX=255,TIME_FOREVER=10000000,UPDATE_CONTENT=0x1,UPDATE_H_SCROLL=0x8,UPDATE_SELECTION=0x2,UPDATE_V_SCROLL=0x4,VISIBLE_SLOP=0x01,VISIBLE_STRICT=0x04,VS_NONE=0,VS_RECTANGULARSELECTION=1,VS_USERACCESSIBLE=2,WRAPINDENT_FIXED=0,WRAPINDENT_INDENT=2,WRAPINDENT_SAME=1,WRAPVISUALFLAGLOC_DEFAULT=0x0000,WRAPVISUALFLAGLOC_END_BY_TEXT=0x0001,WRAPVISUALFLAGLOC_START_BY_TEXT=0x0002,WRAPVISUALFLAG_END=0x0001,WRAPVISUALFLAG_MARGIN=0x0004,WRAPVISUALFLAG_NONE=0x0000,WRAPVISUALFLAG_START=0x0002,WRAP_CHAR=2,WRAP_NONE=0,WRAP_WHITESPACE=3,WRAP_WORD=1,WS_INVISIBLE=0,WS_VISIBLEAFTERINDENT=2,WS_VISIBLEALWAYS=1} +M.constants = {ALPHA_NOALPHA=256,ALPHA_OPAQUE=255,ALPHA_TRANSPARENT=0,ANNOTATION_BOXED=2,ANNOTATION_HIDDEN=0,ANNOTATION_INDENTED=3,ANNOTATION_STANDARD=1,AUTOMATICFOLD_CHANGE=0x0004,AUTOMATICFOLD_CLICK=0x0002,AUTOMATICFOLD_SHOW=0x0001,CARETSTICKY_OFF=0,CARETSTICKY_ON=1,CARETSTICKY_WHITESPACE=2,CARETSTYLE_BLOCK=2,CARETSTYLE_INVISIBLE=0,CARETSTYLE_LINE=1,CARET_EVEN=0x08,CARET_JUMPS=0x10,CARET_SLOP=0x01,CARET_STRICT=0x04,CASEINSENSITIVEBEHAVIOUR_IGNORECASE=1,CASEINSENSITIVEBEHAVIOUR_RESPECTCASE=0,CASE_LOWER=2,CASE_MIXED=0,CASE_UPPER=1,CP_UTF8=65001,CURSORARROW=2,CURSORNORMAL=-1,CURSORREVERSEARROW=7,CURSORWAIT=4,EDGE_BACKGROUND=2,EDGE_LINE=1,EDGE_NONE=0,EOL_CR=1,EOL_CRLF=0,EOL_LF=2,FIND_CXX11REGEX=0x00800000,FIND_MATCHCASE=0x4,FIND_REGEXP=6291456,FIND_WHOLEWORD=0x2,FIND_WORDSTART=0x00100000,FOLDACTION_CONTRACT=0,FOLDACTION_EXPAND=1,FOLDACTION_TOGGLE=2,FOLDFLAG_LEVELNUMBERS=0x0040,FOLDFLAG_LINEAFTER_CONTRACTED=0x0010,FOLDFLAG_LINEAFTER_EXPANDED=0x0008,FOLDFLAG_LINEBEFORE_CONTRACTED=0x0004,FOLDFLAG_LINEBEFORE_EXPANDED=0x0002,FOLDFLAG_LINESTATE=0x0080,FOLDLEVELBASE=0x400,FOLDLEVELHEADERFLAG=0x2000,FOLDLEVELNUMBERMASK=0x0FFF,FOLDLEVELWHITEFLAG=0x1000,IME_INLINE=1,IME_WINDOWED=0,INDIC_BOX=6,INDIC_COMPOSITIONTHICK=14,INDIC_CONTAINER=8,INDIC_DASH=9,INDIC_DIAGONAL=3,INDIC_DOTBOX=12,INDIC_DOTS=10,INDIC_HIDDEN=5,INDIC_IME=32,INDIC_IME_MAX=35,INDIC_MAX=35,INDIC_PLAIN=0,INDIC_ROUNDBOX=7,INDIC_SQUIGGLE=1,INDIC_SQUIGGLELOW=11,INDIC_SQUIGGLEPIXMAP=13,INDIC_STRAIGHTBOX=8,INDIC_STRIKE=4,INDIC_TT=2,IV_LOOKBOTH=3,IV_LOOKFORWARD=2,IV_NONE=0,IV_REAL=1,LASTSTEPINUNDOREDO=0x100,MARGINOPTION_NONE=0,MARGINOPTION_SUBLINESELECT=1,MARGIN_BACK=2,MARGIN_FORE=3,MARGIN_NUMBER=1,MARGIN_RTEXT=5,MARGIN_SYMBOL=0,MARGIN_TEXT=4,MARKER_MAX=31,MARKNUM_FOLDER=30,MARKNUM_FOLDEREND=25,MARKNUM_FOLDERMIDTAIL=27,MARKNUM_FOLDEROPEN=31,MARKNUM_FOLDEROPENMID=26,MARKNUM_FOLDERSUB=29,MARKNUM_FOLDERTAIL=28,MARK_ARROW=2,MARK_ARROWDOWN=6,MARK_ARROWS=24,MARK_AVAILABLE=28,MARK_BACKGROUND=22,MARK_BOOKMARK=31,MARK_BOXMINUS=14,MARK_BOXMINUSCONNECTED=15,MARK_BOXPLUS=12,MARK_BOXPLUSCONNECTED=13,MARK_CHARACTER=10000,MARK_CIRCLE=0,MARK_CIRCLEMINUS=20,MARK_CIRCLEMINUSCONNECTED=21,MARK_CIRCLEPLUS=18,MARK_CIRCLEPLUSCONNECTED=19,MARK_DOTDOTDOT=23,MARK_EMPTY=5,MARK_FULLRECT=26,MARK_LCORNER=10,MARK_LCORNERCURVE=16,MARK_LEFTRECT=27,MARK_MINUS=7,MARK_PIXMAP=25,MARK_PLUS=8,MARK_RGBAIMAGE=30,MARK_ROUNDRECT=1,MARK_SHORTARROW=4,MARK_SMALLRECT=3,MARK_TCORNER=11,MARK_TCORNERCURVE=17,MARK_UNDERLINE=29,MARK_VLINE=9,MASK_FOLDERS=-33554432,MAX_MARGIN=4,MODEVENTMASKALL=0x3FFFFF,MOD_ALT=4,MOD_BEFOREDELETE=0x800,MOD_BEFOREINSERT=0x400,MOD_CHANGEANNOTATION=0x20000,MOD_CHANGEFOLD=0x8,MOD_CHANGEINDICATOR=0x4000,MOD_CHANGELINESTATE=0x8000,MOD_CHANGEMARGIN=0x10000,MOD_CHANGEMARKER=0x200,MOD_CHANGESTYLE=0x4,MOD_CHANGETABSTOPS=0x200000,MOD_CONTAINER=0x40000,MOD_CTRL=2,MOD_DELETETEXT=0x2,MOD_INSERTCHECK=0x100000,MOD_INSERTTEXT=0x1,MOD_LEXERSTATE=0x80000,MOD_META=16,MOD_NORM=0,MOD_SHIFT=1,MOD_SUPER=8,MOUSE_DRAG=2,MOUSE_PRESS=1,MOUSE_RELEASE=3,MULTIAUTOC_EACH=1,MULTIAUTOC_ONCE=0,MULTILINEUNDOREDO=0x1000,MULTIPASTE_EACH=1,MULTIPASTE_ONCE=0,MULTISTEPUNDOREDO=0x80,ORDER_CUSTOM=2,ORDER_PERFORMSORT=1,ORDER_PRESORTED=0,PERFORMED_REDO=0x40,PERFORMED_UNDO=0x20,PERFORMED_USER=0x10,PHASES_MULTIPLE=2,PHASES_ONE=0,PHASES_TWO=1,SCN_AUTOCCANCELLED=2025,SCN_AUTOCCHARDELETED=2026,SCN_AUTOCSELECTION=2022,SCN_CALLTIPCLICK=2021,SCN_CHARADDED=2001,SCN_DOUBLECLICK=2006,SCN_DWELLEND=2017,SCN_DWELLSTART=2016,SCN_FOCUSIN=2028,SCN_FOCUSOUT=2029,SCN_HOTSPOTCLICK=2019,SCN_HOTSPOTDOUBLECLICK=2020,SCN_HOTSPOTRELEASECLICK=2027,SCN_INDICATORCLICK=2023,SCN_INDICATORRELEASE=2024,SCN_KEY=2005,SCN_MACRORECORD=2009,SCN_MARGINCLICK=2010,SCN_MODIFIED=2008,SCN_MODIFYATTEMPTRO=2004,SCN_NEEDSHOWN=2011,SCN_PAINTED=2013,SCN_SAVEPOINTLEFT=2003,SCN_SAVEPOINTREACHED=2002,SCN_STYLENEEDED=2000,SCN_UPDATEUI=2007,SCN_URIDROPPED=2015,SCN_USERLISTSELECTION=2014,SCN_ZOOM=2018,SEL_LINES=2,SEL_RECTANGLE=1,SEL_STREAM=0,SEL_THIN=3,STARTACTION=0x2000,STYLE_BRACEBAD=35,STYLE_BRACELIGHT=34,STYLE_CALLTIP=38,STYLE_CONTROLCHAR=36,STYLE_DEFAULT=32,STYLE_INDENTGUIDE=37,STYLE_LASTPREDEFINED=39,STYLE_LINENUMBER=33,STYLE_MAX=255,TIME_FOREVER=10000000,UPDATE_CONTENT=0x1,UPDATE_H_SCROLL=0x8,UPDATE_SELECTION=0x2,UPDATE_V_SCROLL=0x4,VISIBLE_SLOP=0x01,VISIBLE_STRICT=0x04,VS_NONE=0,VS_RECTANGULARSELECTION=1,VS_USERACCESSIBLE=2,WRAPINDENT_FIXED=0,WRAPINDENT_INDENT=2,WRAPINDENT_SAME=1,WRAPVISUALFLAGLOC_DEFAULT=0x0000,WRAPVISUALFLAGLOC_END_BY_TEXT=0x0001,WRAPVISUALFLAGLOC_START_BY_TEXT=0x0002,WRAPVISUALFLAG_END=0x0001,WRAPVISUALFLAG_MARGIN=0x0004,WRAPVISUALFLAG_NONE=0x0000,WRAPVISUALFLAG_START=0x0002,WRAP_CHAR=2,WRAP_NONE=0,WRAP_WHITESPACE=3,WRAP_WORD=1,WS_INVISIBLE=0,WS_VISIBLEAFTERINDENT=2,WS_VISIBLEALWAYS=1} --- -- Map of Scintilla function names to tables containing their IDs, return types, diff --git a/src/Makefile b/src/Makefile index 956d31e4..25b0c99b 100644 --- a/src/Makefile +++ b/src/Makefile @@ -381,7 +381,7 @@ else lspawn_url = http://foicica.com/hg/lspawn/archive/tip.zip endif -scintilla_tgz = scintilla351.tgz +scintilla_tgz = scintilla352.tgz scinterm_zip = 4f22b02fb536.zip scintillua_zip = 7ad2658b4ae3.zip lua_tgz = lua-5.2.3.tar.gz diff --git a/src/scintilla.patch b/src/scintilla.patch index 4818d3d4..493fd538 100644 --- a/src/scintilla.patch +++ b/src/scintilla.patch @@ -18,284 +18,6 @@ diff -r 5693714a8b0b src/Catalogue.cxx return 1; } -diff -r 326449de45d0 gtk/ScintillaGTK.cxx ---- a/gtk/ScintillaGTK.cxx Thu Sep 25 09:48:50 2014 +1000 -+++ b/gtk/ScintillaGTK.cxx Tue Oct 07 12:28:16 2014 -0400 -@@ -1563,6 +1563,13 @@ - len--; // Forget the extra '\0' - #endif - -+#if PLAT_GTK_WIN32 -+ // Win32 includes an ending '\0' byte in 'len' for clipboard text from -+ // external applications; ignore it. -+ if (len > 0 && data[len - 1] == '\0') -+ len--; -+#endif -+ - std::string dest(data, len); - if (selectionTypeData == GDK_TARGET_STRING) { - if (IsUnicodeMode()) { -diff -r 01c4696a39a9 src/Editor.cxx ---- a/src/Editor.cxx Tue Sep 30 09:58:13 2014 +1000 -+++ b/src/Editor.cxx Wed Oct 22 13:22:55 2014 -0400 -@@ -112,6 +112,7 @@ - mouseDownCaptures = true; - - lastClickTime = 0; -+ doubleClickCloseThreshold = Point(3, 3); - dwellDelay = SC_TIME_FOREVER; - ticksToDwell = SC_TIME_FOREVER; - dwelling = false; -@@ -3757,10 +3758,10 @@ - EnsureCaretVisible(); - } - --static bool Close(Point pt1, Point pt2) { -- if (abs(pt1.x - pt2.x) > 3) -+static bool Close(Point pt1, Point pt2, Point threshold) { -+ if (abs(pt1.x - pt2.x) > threshold.x) - return false; -- if (abs(pt1.y - pt2.y) > 3) -+ if (abs(pt1.y - pt2.y) > threshold.y) - return false; - return true; - } -@@ -4116,7 +4117,7 @@ - if (shift && !inSelMargin) { - SetSelection(newPos); - } -- if (((curTime - lastClickTime) < Platform::DoubleClickTime()) && Close(pt, lastClick)) { -+ if (((curTime - lastClickTime) < Platform::DoubleClickTime()) && Close(pt, lastClick, doubleClickCloseThreshold)) { - //Platform::DebugPrintf("Double click %d %d = %d\n", curTime, lastClickTime, curTime - lastClickTime); - SetMouseCapture(true); - if (FineTickerAvailable()) { -diff -r 01c4696a39a9 src/Editor.h ---- a/src/Editor.h Tue Sep 30 09:58:13 2014 +1000 -+++ b/src/Editor.h Wed Oct 22 13:22:55 2014 -0400 -@@ -203,6 +203,7 @@ - - Point lastClick; - unsigned int lastClickTime; -+ Point doubleClickCloseThreshold; - int dwellDelay; - int ticksToDwell; - bool dwelling; -diff -r 326449de45d0 src/EditView.cxx ---- a/src/EditView.cxx Thu Sep 25 09:48:50 2014 +1000 -+++ b/src/EditView.cxx Sat Nov 08 21:00:02 2014 -0500 -@@ -185,6 +185,9 @@ - pixmapIndentGuideHighlight = 0; - llc.SetLevel(LineLayoutCache::llcCaret); - posCache.SetSize(0x400); -+ tabArrowHeight = 4; -+ customDrawTabArrow = NULL; -+ customDrawWrapMarker = NULL; - } - - EditView::~EditView() { -@@ -927,7 +930,11 @@ - rcPlace.right = rcLine.right; - rcPlace.left = rcPlace.right - vsDraw.aveCharWidth; - } -- DrawWrapMarker(surface, rcPlace, true, vsDraw.WrapColour()); -+ if (customDrawWrapMarker == NULL) { -+ DrawWrapMarker(surface, rcPlace, true, vsDraw.WrapColour()); -+ } else { -+ customDrawWrapMarker(surface, rcPlace, true, vsDraw.WrapColour()); -+ } - } - } - -@@ -1201,7 +1208,7 @@ - } - - static void DrawWrapIndentAndMarker(Surface *surface, const ViewStyle &vsDraw, const LineLayout *ll, -- int xStart, PRectangle rcLine, ColourOptional background) { -+ int xStart, PRectangle rcLine, ColourOptional background, DrawWrapMarkerFn customDrawWrapMarker) { - // default bgnd here.. - surface->FillRectangle(rcLine, background.isSet ? background : - vsDraw.styles[STYLE_DEFAULT].back); -@@ -1219,7 +1226,11 @@ - else - rcPlace.right = rcPlace.left + vsDraw.aveCharWidth; - -- DrawWrapMarker(surface, rcPlace, false, vsDraw.WrapColour()); -+ if (customDrawWrapMarker == NULL) { -+ DrawWrapMarker(surface, rcPlace, false, vsDraw.WrapColour()); -+ } else { -+ customDrawWrapMarker(surface, rcPlace, false, vsDraw.WrapColour()); -+ } - } - } - -@@ -1463,9 +1474,12 @@ - if (vsDraw.whitespaceColours.fore.isSet) - textFore = vsDraw.whitespaceColours.fore; - surface->PenColour(textFore); -- PRectangle rcTab(rcSegment.left + 1, rcSegment.top + 4, -+ PRectangle rcTab(rcSegment.left + 1, rcSegment.top + tabArrowHeight, - rcSegment.right - 1, rcSegment.bottom - vsDraw.maxDescent); -- DrawTabArrow(surface, rcTab, static_cast(rcSegment.top + vsDraw.lineHeight / 2)); -+ if (customDrawTabArrow == NULL) -+ DrawTabArrow(surface, rcTab, static_cast(rcSegment.top + vsDraw.lineHeight / 2)); -+ else -+ customDrawTabArrow(surface, rcTab, static_cast(rcSegment.top + vsDraw.lineHeight / 2)); - } - } - } else { -@@ -1632,7 +1646,7 @@ - - if ((ll->wrapIndent != 0) && (subLine > 0)) { - if (phase & drawBack) { -- DrawWrapIndentAndMarker(surface, vsDraw, ll, xStart, rcLine, background); -+ DrawWrapIndentAndMarker(surface, vsDraw, ll, xStart, rcLine, background, customDrawWrapMarker); - } - xStart += static_cast(ll->wrapIndent); - } -diff -r 326449de45d0 src/EditView.h ---- a/src/EditView.h Thu Sep 25 09:48:50 2014 +1000 -+++ b/src/EditView.h Sat Nov 08 21:00:02 2014 -0500 -@@ -42,6 +42,8 @@ - void DrawStyledText(Surface *surface, const ViewStyle &vs, int styleOffset, PRectangle rcText, - const StyledText &st, size_t start, size_t length, DrawPhase phase); - -+typedef void (*DrawTabArrowFn)(Surface *surface, PRectangle rcTab, int ymid); -+ - /** - * EditView draws the main text area. - */ -@@ -78,6 +80,14 @@ - LineLayoutCache llc; - PositionCache posCache; - -+ int tabArrowHeight; // draw arrow heads this many pixels above/below line midpoint -+ /** Some platforms, notably PLAT_CURSES, do not support Scintilla's native -+ * DrawTabArrow function for drawing tab characters. Allow those platforms to -+ * override it instead of creating a new method in the Surface class that -+ * existing platforms must implement as empty. */ -+ DrawTabArrowFn customDrawTabArrow; -+ DrawWrapMarkerFn customDrawWrapMarker; -+ - EditView(); - virtual ~EditView(); - -diff -r 326449de45d0 src/MarginView.cxx ---- a/src/MarginView.cxx Thu Sep 25 09:48:50 2014 +1000 -+++ b/src/MarginView.cxx Sat Nov 08 21:00:02 2014 -0500 -@@ -102,6 +102,8 @@ - pixmapSelMargin = 0; - pixmapSelPattern = 0; - pixmapSelPatternOffset1 = 0; -+ wrapMarkerPaddingRight = 3; -+ customDrawWrapMarker = NULL; - } - - void MarginView::DropGraphics(bool freeObjects) { -@@ -391,9 +393,13 @@ - rcNumber.top + vs.maxAscent, number, static_cast(strlen(number)), drawAll); - } else if (vs.wrapVisualFlags & SC_WRAPVISUALFLAG_MARGIN) { - PRectangle rcWrapMarker = rcMarker; -- rcWrapMarker.right -= 3; -+ rcWrapMarker.right -= wrapMarkerPaddingRight; - rcWrapMarker.left = rcWrapMarker.right - vs.styles[STYLE_LINENUMBER].aveCharWidth; -- DrawWrapMarker(surface, rcWrapMarker, false, vs.styles[STYLE_LINENUMBER].fore); -+ if (customDrawWrapMarker == NULL) { -+ DrawWrapMarker(surface, rcWrapMarker, false, vs.styles[STYLE_LINENUMBER].fore); -+ } else { -+ customDrawWrapMarker(surface, rcWrapMarker, false, vs.styles[STYLE_LINENUMBER].fore); -+ } - } - } else if (vs.ms[margin].style == SC_MARGIN_TEXT || vs.ms[margin].style == SC_MARGIN_RTEXT) { - if (firstSubLine) { -diff -r 326449de45d0 src/MarginView.h ---- a/src/MarginView.h Thu Sep 25 09:48:50 2014 +1000 -+++ b/src/MarginView.h Sat Nov 08 21:00:02 2014 -0500 -@@ -14,6 +14,8 @@ - - void DrawWrapMarker(Surface *surface, PRectangle rcPlace, bool isEndMarker, ColourDesired wrapColour); - -+typedef void (*DrawWrapMarkerFn)(Surface *surface, PRectangle rcPlace, bool isEndMarker, ColourDesired wrapColour); -+ - /** - * MarginView draws the margins. - */ -@@ -25,6 +27,13 @@ - // Highlight current folding block - HighlightDelimiter highlightDelimiter; - -+ int wrapMarkerPaddingRight; // right-most pixel padding of wrap markers -+ /** Some platforms, notably PLAT_CURSES, do not support Scintilla's native -+ * DrawWrapMarker function for drawing wrap markers. Allow those platforms to -+ * override it instead of creating a new method in the Surface class that -+ * existing platforms must implement as empty. */ -+ DrawWrapMarkerFn customDrawWrapMarker; -+ - MarginView(); - - void DropGraphics(bool freeObjects); -diff -r 326449de45d0 src/LineMarker.cxx ---- a/src/LineMarker.cxx Thu Sep 25 09:48:50 2014 +1000 -+++ b/src/LineMarker.cxx Sun Nov 09 00:50:17 2014 -0500 -@@ -72,6 +72,11 @@ - } - - void LineMarker::Draw(Surface *surface, PRectangle &rcWhole, Font &fontForCharacter, typeOfFold tFold, int marginStyle) const { -+ if (customDraw != NULL) { -+ customDraw(surface, rcWhole, fontForCharacter, tFold, marginStyle, this); -+ return; -+ } -+ - ColourDesired colourHead = back; - ColourDesired colourBody = back; - ColourDesired colourTail = back; -diff -r 326449de45d0 src/LineMarker.h ---- a/src/LineMarker.h Thu Sep 25 09:48:50 2014 +1000 -+++ b/src/LineMarker.h Sun Nov 09 00:50:17 2014 -0500 -@@ -12,6 +12,8 @@ - namespace Scintilla { - #endif - -+typedef void (*DrawLineMarkerFn)(Surface *surface, PRectangle &rcWhole, Font &fontForCharacter, int tFold, int marginStyle, const void *lineMarker); -+ - /** - */ - class LineMarker { -@@ -25,6 +27,11 @@ - int alpha; - XPM *pxpm; - RGBAImage *image; -+ /** Some platforms, notably PLAT_CURSES, do not support Scintilla's native -+ * Draw function for drawing line markers. Allow those platforms to override -+ * it instead of creating a new method(s) in the Surface class that existing -+ * platforms must implement as empty. */ -+ DrawLineMarkerFn customDraw; - LineMarker() { - markType = SC_MARK_CIRCLE; - fore = ColourDesired(0,0,0); -@@ -33,6 +40,7 @@ - alpha = SC_ALPHA_NOALPHA; - pxpm = NULL; - image = NULL; -+ customDraw = NULL; - } - LineMarker(const LineMarker &) { - // Defined to avoid pxpm being blindly copied, not as a complete copy constructor -@@ -43,6 +51,7 @@ - alpha = SC_ALPHA_NOALPHA; - pxpm = NULL; - image = NULL; -+ customDraw = NULL; - } - ~LineMarker() { - delete pxpm; -@@ -60,6 +69,7 @@ - pxpm = NULL; - delete image; - image = NULL; -+ customDraw = NULL; - } - return *this; - } diff -r 326449de45d0 src/ScintillaBase.cxx --- a/src/ScintillaBase.cxx Thu Sep 25 09:48:50 2014 +1000 +++ b/src/ScintillaBase.cxx Sun Nov 30 23:25:36 2014 -0500 -- cgit v1.2.3