mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-08-23 10:48:30 +02:00
update to https://www.scintilla.org/scintilla533.zip with: 1. Released 8 February 2023. 2. Fix SCI_LINESJOIN bug where carriage returns were incorrectly retained. Bug #2372. 3. Fix SCI_VERTICALCENTRECARET to update the vertical scroll position. 4. When an autocompletion list is shown in response to SCN_CHARADDED, do not process character as fill-up or stop. This avoids closing immediately when a character may both trigger and finish autocompletion. 5. On Cocoa fix character input bug where dotless 'i' and some other extended Latin characters could not be entered. The change also stops SCI_ASSIGNCMDKEY from working with these characters on Cocoa. Bug #2374. 6. On GTK, support IME context. Feature #1476. 7. On GTK on Win32, fix scrolling speed to not be too fast. Bug #2375. 8. On Qt, fix indicator drawing past left of text pane over margin. Bug #2373, Bug #1956. 9. On Qt, allow scrolling with mouse wheel when scroll bar hidden. and https://www.scintilla.org/lexilla522.zip with 1. Released 8 February 2023. 2. C++: Fix keywords that start with non-ASCII. Also affects other lexers. Issue #130. 3. Matlab: Include more prefix and suffix characters in numeric literals. Issue #120. 4. Matlab: More accurate treatment of line ends inside strings. Matlab and Octave are different here. Issue #18. 5. Modula-3: Don't treat identifier suffix that matches keyword as keyword. Issue #129. 6. Modula-3: Fix endless loop in folder. Issue #128. 7. Modula-3: Fix access to lines beyond document end in folder. Issue #131. 8. Python: Don't highlight match and case as keywords in contexts where they probably aren't used as keywords. Pull request #122. 9. X12: Support empty envelopes. Bug #2369. update CMakeLists.txt to latest changes within vcxproj file Close #13082
109 lines
3.3 KiB
C++
109 lines
3.3 KiB
C++
// Lexilla lexer library
|
|
/** @file Lexilla.h
|
|
** Lexilla definitions for dynamic and static linking.
|
|
** For C++, more features and type safety are available with the LexillaAccess module.
|
|
**/
|
|
// Copyright 2020 by Neil Hodgson <neilh@scintilla.org>
|
|
// The License.txt file describes the conditions under which this software may be distributed.
|
|
|
|
#ifndef LEXILLA_H
|
|
#define LEXILLA_H
|
|
|
|
// Define the default Lexilla shared library name for each platform
|
|
#if defined(_WIN32)
|
|
#define LEXILLA_LIB "lexilla"
|
|
#define LEXILLA_EXTENSION ".dll"
|
|
#else
|
|
#define LEXILLA_LIB "liblexilla"
|
|
#if defined(__APPLE__)
|
|
#define LEXILLA_EXTENSION ".dylib"
|
|
#else
|
|
#define LEXILLA_EXTENSION ".so"
|
|
#endif
|
|
#endif
|
|
|
|
// On Win32 use the stdcall calling convention otherwise use the standard calling convention
|
|
#if defined(_WIN32)
|
|
#define LEXILLA_CALL __stdcall
|
|
#else
|
|
#define LEXILLA_CALL
|
|
#endif
|
|
|
|
#if defined(__OBJC2__)
|
|
// Objective C(++) treats '[' as a message expression.
|
|
#define DEPRECATE_DEFINITION
|
|
#elif defined(__cplusplus)
|
|
#define DEPRECATE_DEFINITION [[deprecated]]
|
|
#elif defined(__GNUC__) || defined(__clang__)
|
|
#define DEPRECATE_DEFINITION __attribute__((deprecated))
|
|
#else
|
|
// MSVC __declspec(deprecated) has different positioning rules to GCC so define to nothing
|
|
#define DEPRECATE_DEFINITION
|
|
#endif
|
|
|
|
#if defined(__cplusplus)
|
|
// Must have already included ILexer.h to have Scintilla::ILexer5 defined.
|
|
using Scintilla::ILexer5;
|
|
#else
|
|
typedef void ILexer5;
|
|
#endif
|
|
|
|
typedef ILexer5 *(*LexerFactoryFunction)();
|
|
|
|
#if defined(__cplusplus)
|
|
namespace Lexilla {
|
|
#endif
|
|
|
|
typedef int (LEXILLA_CALL *GetLexerCountFn)();
|
|
typedef void (LEXILLA_CALL *GetLexerNameFn)(unsigned int Index, char *name, int buflength);
|
|
typedef LexerFactoryFunction(LEXILLA_CALL *GetLexerFactoryFn)(unsigned int Index);
|
|
typedef ILexer5*(LEXILLA_CALL *CreateLexerFn)(const char *name);
|
|
DEPRECATE_DEFINITION typedef const char *(LEXILLA_CALL *LexerNameFromIDFn)(int identifier);
|
|
typedef const char *(LEXILLA_CALL *GetLibraryPropertyNamesFn)();
|
|
typedef void(LEXILLA_CALL *SetLibraryPropertyFn)(const char *key, const char *value);
|
|
typedef const char *(LEXILLA_CALL *GetNameSpaceFn)();
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif
|
|
|
|
#define LEXILLA_NAMESPACE_SEPARATOR '.'
|
|
|
|
#define LEXILLA_GETLEXERCOUNT "GetLexerCount"
|
|
#define LEXILLA_GETLEXERNAME "GetLexerName"
|
|
#define LEXILLA_GETLEXERFACTORY "GetLexerFactory"
|
|
#define LEXILLA_CREATELEXER "CreateLexer"
|
|
#define LEXILLA_LEXERNAMEFROMID "LexerNameFromID"
|
|
#define LEXILLA_GETLIBRARYPROPERTYNAMES "GetLibraryPropertyNames"
|
|
#define LEXILLA_SETLIBRARYPROPERTY "SetLibraryProperty"
|
|
#define LEXILLA_GETNAMESPACE "GetNameSpace"
|
|
|
|
// Static linking prototypes
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
ILexer5 * LEXILLA_CALL CreateLexer(const char *name);
|
|
int LEXILLA_CALL GetLexerCount();
|
|
void LEXILLA_CALL GetLexerName(unsigned int index, char *name, int buflength);
|
|
LexerFactoryFunction LEXILLA_CALL GetLexerFactory(unsigned int index);
|
|
DEPRECATE_DEFINITION const char *LEXILLA_CALL LexerNameFromID(int identifier);
|
|
const char * LEXILLA_CALL GetLibraryPropertyNames();
|
|
void LEXILLA_CALL SetLibraryProperty(const char *key, const char *value);
|
|
const char *LEXILLA_CALL GetNameSpace();
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif
|
|
|
|
#if defined(__cplusplus)
|
|
namespace Lexilla {
|
|
class LexerModule;
|
|
}
|
|
// Add a static lexer (in the same binary) to Lexilla's list
|
|
void AddStaticLexerModule(Lexilla::LexerModule *plm);
|
|
#endif
|
|
|
|
#endif
|