mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-11-25 07:53:03 +01:00
Scintilla 5.4.1 https://www.scintilla.org/scintilla541.zip Released 27 December 2023. 1. Add IDocumentEditable interface to allow efficient interaction with document objects which may not be visible in a Scintilla instance. This feature is provisonal and may change before being declared stable. For better type-safety, the ScintillaCall C++ API uses IDocumentEditable* where void* was used before which may require changes to client code that uses document pointer APIs DocPointer, SetDocPointer, CreateDocument, AddRefDocument, and ReleaseDocument. 2. Ctrl-click on a selection deselects it in multiple selection mode. 3. Add SCI_SELECTIONFROMPOINT for modifying multiple selections. 4. Add SCI_SETMOVEEXTENDSSELECTION and SCI_CHANGESELECTIONMODE to simplify selection mode manipulation. 5. Improve performance of global replace by reducing cache invalidation overhead. [Feature #1502](https://sourceforge.net/p/scintilla/feature-requests/1502/). 6. Fix regular expression search for "\<" matching beginning of search when not beginning of word and for "\>" not matching line end. [Bug #2157](https://sourceforge.net/p/scintilla/bugs/2157/). 7. Fix regular expression search failure when search for "\<" followed by search for "\>". [Bug #2413](https://sourceforge.net/p/scintilla/bugs/2413/). 8. Fix regular expression assertion (^, $, \b. \B) failures when using SCFIND_CXX11REGEX. [Bug #2405](https://sourceforge.net/p/scintilla/bugs/2405/). 9. Fix regular expression bug in reverse direction where shortened match returned. [Bug #2405](https://sourceforge.net/p/scintilla/bugs/2405/). 10. Avoid character fragments in regular expression search results. [Bug #2405](https://sourceforge.net/p/scintilla/bugs/2405/). 11. With a document that does not have the SC_DOCUMENTOPTION_TEXT_LARGE option set, allocating more than 2G (calling SCI_ALLOCATE or similar) will now fail with SC_STATUS_FAILURE. 12. Protect SCI_REPLACETARGET, SCI_REPLACETARGETMINIMAL, and SCI_REPLACETARGETRE from application changing target in notification handlers. [Bug #2289](https://sourceforge.net/p/scintilla/bugs/2289/). Lexilla 5.3.0 https://www.scintilla.org/lexilla530.zip Released 27 December 2023. 1. Fix calling AddStaticLexerModule by defining as C++ instead of C which matches header. [Bug #2421](https://sourceforge.net/p/scintilla/bugs/2421/). 2. Bash: Fix shift operator << incorrectly recognized as here-doc. [Issue #215](https://github.com/ScintillaOrg/lexilla/issues/215). 3. Bash: Fix termination of '${' with first unquoted '}' instead of nesting. [Issue #216](https://github.com/ScintillaOrg/lexilla/issues/216). 4. HTML: JavaScript double-quoted strings may escape line end with '\'. [Issue #214](https://github.com/ScintillaOrg/lexilla/issues/214). 5. Lua: recognize --- doc comments. Defined by [LDoc](https://github.com/lunarmodules/ldoc). Does not recognize --[[-- doc comments which seem less common. Close #14375
58 lines
2.1 KiB
C++
58 lines
2.1 KiB
C++
// Scintilla source code edit control
|
|
/** @file Indicator.h
|
|
** Defines the style of indicators which are text decorations such as underlining.
|
|
**/
|
|
// Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org>
|
|
// The License.txt file describes the conditions under which this software may be distributed.
|
|
|
|
#ifndef INDICATOR_H
|
|
#define INDICATOR_H
|
|
|
|
namespace Scintilla::Internal {
|
|
|
|
struct StyleAndColour {
|
|
Scintilla::IndicatorStyle style;
|
|
ColourRGBA fore;
|
|
StyleAndColour() noexcept : style(Scintilla::IndicatorStyle::Plain), fore(black) {
|
|
}
|
|
StyleAndColour(Scintilla::IndicatorStyle style_, ColourRGBA fore_ = black) noexcept : style(style_), fore(fore_) {
|
|
}
|
|
bool operator==(const StyleAndColour &other) const noexcept {
|
|
return (style == other.style) && (fore == other.fore);
|
|
}
|
|
};
|
|
|
|
/**
|
|
*/
|
|
class Indicator {
|
|
public:
|
|
enum class State { normal, hover };
|
|
StyleAndColour sacNormal;
|
|
StyleAndColour sacHover;
|
|
bool under;
|
|
int fillAlpha;
|
|
int outlineAlpha;
|
|
Scintilla::IndicFlag attributes;
|
|
XYPOSITION strokeWidth = 1.0f;
|
|
Indicator() noexcept : under(false), fillAlpha(30), outlineAlpha(50), attributes(Scintilla::IndicFlag::None) {
|
|
}
|
|
Indicator(Scintilla::IndicatorStyle style_, ColourRGBA fore_= black, bool under_=false, int fillAlpha_=30, int outlineAlpha_=50) noexcept :
|
|
sacNormal(style_, fore_), sacHover(style_, fore_), under(under_), fillAlpha(fillAlpha_), outlineAlpha(outlineAlpha_), attributes(Scintilla::IndicFlag::None) {
|
|
}
|
|
void Draw(Surface *surface, const PRectangle &rc, const PRectangle &rcLine, const PRectangle &rcCharacter, State drawState, int value) const;
|
|
bool IsDynamic() const noexcept {
|
|
return !(sacNormal == sacHover);
|
|
}
|
|
bool OverridesTextFore() const noexcept {
|
|
return sacNormal.style == Scintilla::IndicatorStyle::TextFore || sacHover.style == Scintilla::IndicatorStyle::TextFore || sacNormal.style == Scintilla::IndicatorStyle::ExplorerLink || sacHover.style == Scintilla::IndicatorStyle::ExplorerLink;
|
|
}
|
|
Scintilla::IndicFlag Flags() const noexcept {
|
|
return attributes;
|
|
}
|
|
void SetFlags(Scintilla::IndicFlag attributes_) noexcept;
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|