mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-11 21:03:05 +08:00
+ fix: missing files for Scintilla Lib v404
This commit is contained in:
parent
bb3a13de44
commit
a5b86a91da
222
scintilla/lexers/LexMaxima.cxx
Normal file
222
scintilla/lexers/LexMaxima.cxx
Normal file
@ -0,0 +1,222 @@
|
||||
// Scintilla source code edit control
|
||||
/** @file LexMaxima.cxx
|
||||
** Lexer for Maxima (http://maxima.sourceforge.net).
|
||||
** Written by Gunter Königsmann based on the lisp lexer by Alexey Yutkin and Neil Hodgson .
|
||||
**/
|
||||
// Copyright 2018 by Gunter Königsmann <wxMaxima@physikbuch.de>
|
||||
// The License.txt file describes the conditions under which this software may be distributed.
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "ILexer.h"
|
||||
#include "Scintilla.h"
|
||||
#include "SciLexer.h"
|
||||
|
||||
#include "WordList.h"
|
||||
#include "LexAccessor.h"
|
||||
#include "Accessor.h"
|
||||
#include "StyleContext.h"
|
||||
#include "CharacterSet.h"
|
||||
#include "LexerModule.h"
|
||||
using namespace Scintilla;
|
||||
|
||||
static inline bool isMaximaoperator(char ch) {
|
||||
return (ch == '\'' || ch == '`' || ch == '(' ||
|
||||
ch == ')' || ch == '[' || ch == ']' ||
|
||||
ch == '{' || ch == '}' || ch == '!' ||
|
||||
ch == '*' || ch == '/' || ch == '^' ||
|
||||
ch == ',' || ch == ':' || ch == '+' ||
|
||||
ch == '-');
|
||||
}
|
||||
|
||||
static void ColouriseMaximaDoc(Sci_PositionU startPos, Sci_Position length, int lastStyle,
|
||||
WordList *[],
|
||||
Accessor &styler) {
|
||||
|
||||
styler.StartAt(startPos);
|
||||
|
||||
Sci_PositionU lengthDoc = startPos + length;
|
||||
styler.StartSegment(startPos);
|
||||
|
||||
Sci_PositionU i = startPos;
|
||||
|
||||
// If we are in the middle of a comment we go back to its start before highlighting
|
||||
if(lastStyle == SCE_MAXIMA_COMMENT)
|
||||
{
|
||||
while((i>0) &&
|
||||
!((styler.SafeGetCharAt(i+1) == '*') && (styler.SafeGetCharAt(i) == '/')))
|
||||
i--;
|
||||
}
|
||||
|
||||
for (; i < lengthDoc; i++) {
|
||||
char ch = styler.SafeGetCharAt(i);
|
||||
char chNext = styler.SafeGetCharAt(i + 1);
|
||||
|
||||
if (styler.IsLeadByte(ch))
|
||||
continue;
|
||||
|
||||
// Handle comments.
|
||||
// Comments start with /* and end with */
|
||||
if((ch == '/') && (chNext == '*'))
|
||||
{
|
||||
i++;i++;
|
||||
|
||||
chNext = styler.SafeGetCharAt(i);
|
||||
for (; i < lengthDoc; i++)
|
||||
{
|
||||
ch = chNext;
|
||||
chNext = styler.SafeGetCharAt(i + 1);
|
||||
if((ch == '*') && (chNext == '/'))
|
||||
{
|
||||
i++;
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(i > lengthDoc)
|
||||
i = lengthDoc;
|
||||
i--;
|
||||
styler.ColourTo(i, SCE_MAXIMA_COMMENT);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Handle Operators
|
||||
if(isMaximaoperator(ch))
|
||||
{
|
||||
styler.ColourTo(i, SCE_MAXIMA_OPERATOR);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Handle command endings.
|
||||
if((ch == '$') || (ch == ';'))
|
||||
{
|
||||
styler.ColourTo(i, SCE_MAXIMA_COMMANDENDING);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Handle numbers. Numbers always begin with a digit.
|
||||
if(IsASCII(ch) && isdigit(ch))
|
||||
{
|
||||
i++;
|
||||
for (; i < lengthDoc; i++)
|
||||
{
|
||||
ch = chNext;
|
||||
chNext = styler.SafeGetCharAt(i + 1);
|
||||
|
||||
if(ch == '.')
|
||||
continue;
|
||||
|
||||
// A "e" or similar can be followed by a "+" or a "-"
|
||||
if(((ch == 'e') || (ch == 'b') || (ch == 'g') || (ch == 'f')) &&
|
||||
((chNext == '+') || (chNext == '-')))
|
||||
{
|
||||
i++;
|
||||
chNext = styler.SafeGetCharAt(i + 1);
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!IsASCII(ch) || !(isdigit(ch) || islower(ch) || isupper(ch)))
|
||||
{
|
||||
i--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
styler.ColourTo(i, SCE_MAXIMA_NUMBER);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Handle strings
|
||||
if(ch == '\"')
|
||||
{
|
||||
i++;
|
||||
for (; i < lengthDoc; i++)
|
||||
{
|
||||
ch = chNext;
|
||||
chNext = styler.SafeGetCharAt(i + 1);
|
||||
if(ch == '\\')
|
||||
i++;
|
||||
else
|
||||
{
|
||||
if(ch == '\"')
|
||||
break;
|
||||
}
|
||||
}
|
||||
styler.ColourTo(i, SCE_MAXIMA_STRING);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Handle keywords. Maxima treats Non-ASCII chars as ordinary letters.
|
||||
if(((!IsASCII(ch))) || isalpha(ch) || (ch == '_'))
|
||||
{
|
||||
char cmd[100];
|
||||
int cmdidx = 0;
|
||||
memset(cmd,0,100);
|
||||
cmd[cmdidx++] = ch;
|
||||
i++;
|
||||
for (; i < lengthDoc; i++)
|
||||
{
|
||||
ch = chNext;
|
||||
chNext = styler.SafeGetCharAt(i + 1);
|
||||
if(ch == '\\')
|
||||
{
|
||||
if(cmdidx < 99)
|
||||
cmd[cmdidx++] = ch;
|
||||
i++;
|
||||
if(cmdidx < 99)
|
||||
cmd[cmdidx++] = ch;
|
||||
continue;
|
||||
}
|
||||
if(isMaximaoperator(ch) || ((IsASCII(ch) && !isalpha(ch) && !isdigit(ch) && (ch != '_'))))
|
||||
{
|
||||
i--;
|
||||
break;
|
||||
}
|
||||
if(cmdidx < 99)
|
||||
cmd[cmdidx++] = ch;
|
||||
}
|
||||
|
||||
// A few known keywords
|
||||
if(
|
||||
(strncmp(cmd,"if",99) == 0) ||
|
||||
(strncmp(cmd,"then",99) == 0) ||
|
||||
(strncmp(cmd,"else",99) == 0) ||
|
||||
(strncmp(cmd,"thru",99) == 0) ||
|
||||
(strncmp(cmd,"for",99) == 0) ||
|
||||
(strncmp(cmd,"while",99) == 0) ||
|
||||
(strncmp(cmd,"do",99) == 0)
|
||||
)
|
||||
{
|
||||
styler.ColourTo(i, SCE_MAXIMA_COMMAND);
|
||||
continue;
|
||||
}
|
||||
|
||||
// All other keywords are functions if they are followed
|
||||
// by an opening parenthesis
|
||||
char nextNonwhitespace = ' ';
|
||||
for (Sci_PositionU o = i + 1; o < lengthDoc; o++)
|
||||
{
|
||||
nextNonwhitespace = styler.SafeGetCharAt(o);
|
||||
if(!IsASCII(nextNonwhitespace) || !isspacechar(nextNonwhitespace))
|
||||
break;
|
||||
}
|
||||
if(nextNonwhitespace == '(')
|
||||
{
|
||||
styler.ColourTo(i, SCE_MAXIMA_COMMAND);
|
||||
}
|
||||
else
|
||||
{
|
||||
styler.ColourTo(i, SCE_MAXIMA_VARIABLE);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
styler.ColourTo(i-1, SCE_MAXIMA_UNKNOWN);
|
||||
}
|
||||
}
|
||||
|
||||
LexerModule lmMaxima(SCLEX_MAXIMA, ColouriseMaximaDoc, "maxima", 0, 0);
|
||||
@ -1 +1 @@
|
||||
405
|
||||
404
|
||||
|
||||
21
scintilla/win32/SciTE.properties
Normal file
21
scintilla/win32/SciTE.properties
Normal file
@ -0,0 +1,21 @@
|
||||
command.build.SConstruct=scons.bat .
|
||||
command.name.1.SConstruct=scons clean
|
||||
command.1.SConstruct=scons.bat --clean .
|
||||
|
||||
command.build.*.mak=nmake -f $(FileNameExt) DEBUG=1 QUIET=1
|
||||
command.name.1.*.mak=nmake clean
|
||||
command.1.*.mak=nmake -f $(FileNameExt) clean
|
||||
command.name.2.*.mak=Borland Make
|
||||
command.2.*.mak=make -f $(FileNameExt)
|
||||
command.subsystem.2.*.mak=0
|
||||
command.name.3.*.mak=make clean
|
||||
command.3.*.mak=make -f $(FileNameExt) clean
|
||||
command.name.4.*.mak=make debug
|
||||
command.4.*.mak=make DEBUG=1 -f $(FileNameExt)
|
||||
command.name.5.*.mak=nmake debug
|
||||
command.5.*.mak=nmake DEBUG=1 -f $(FileNameExt)
|
||||
# SciTE.properties is the per directory local options file and can be used to override
|
||||
# settings made in SciTEGlobal.properties
|
||||
command.build.*.cxx=nmake -f scintilla.mak DEBUG=1 QUIET=1
|
||||
command.build.*.h=nmake -f scintilla.mak DEBUG=1 QUIET=1
|
||||
command.build.*.rc=nmake -f scintilla.mak DEBUG=1 QUIET=1
|
||||
35
scintilla/win32/ScintillaDLL.cxx
Normal file
35
scintilla/win32/ScintillaDLL.cxx
Normal file
@ -0,0 +1,35 @@
|
||||
// Scintilla source code edit control
|
||||
/** @file ScintillaDLL.cxx
|
||||
** DLL entry point for Scintilla.
|
||||
**/
|
||||
// Copyright 1998-2018 by Neil Hodgson <neilh@scintilla.org>
|
||||
// The License.txt file describes the conditions under which this software may be distributed.
|
||||
|
||||
#undef _WIN32_WINNT
|
||||
#define _WIN32_WINNT 0x0500
|
||||
#undef WINVER
|
||||
#define WINVER 0x0500
|
||||
#include <windows.h>
|
||||
|
||||
#include "Scintilla.h"
|
||||
#include "ScintillaWin.h"
|
||||
|
||||
extern "C"
|
||||
__declspec(dllexport)
|
||||
sptr_t __stdcall Scintilla_DirectFunction(
|
||||
ScintillaWin *sci, UINT iMessage, uptr_t wParam, sptr_t lParam) {
|
||||
return Scintilla::DirectFunction(sci, iMessage, wParam, lParam);
|
||||
}
|
||||
|
||||
extern "C" int APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpvReserved) {
|
||||
//Platform::DebugPrintf("Scintilla::DllMain %d %d\n", hInstance, dwReason);
|
||||
if (dwReason == DLL_PROCESS_ATTACH) {
|
||||
if (!Scintilla_RegisterClasses(hInstance))
|
||||
return FALSE;
|
||||
} else if (dwReason == DLL_PROCESS_DETACH) {
|
||||
if (lpvReserved == NULL) {
|
||||
Scintilla::ResourcesRelease(true);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
15
scintilla/win32/ScintillaWin.h
Normal file
15
scintilla/win32/ScintillaWin.h
Normal file
@ -0,0 +1,15 @@
|
||||
// Scintilla source code edit control
|
||||
/** @file ScintillaWin.h
|
||||
** Define functions from ScintillaWin.cxx that can be called from ScintillaDLL.cxx.
|
||||
**/
|
||||
// Copyright 1998-2018 by Neil Hodgson <neilh@scintilla.org>
|
||||
// The License.txt file describes the conditions under which this software may be distributed.
|
||||
|
||||
class ScintillaWin;
|
||||
|
||||
namespace Scintilla {
|
||||
|
||||
int ResourcesRelease(bool fromDllMain);
|
||||
sptr_t DirectFunction(ScintillaWin *sci, UINT iMessage, uptr_t wParam, sptr_t lParam);
|
||||
|
||||
}
|
||||
@ -5,9 +5,9 @@
|
||||
// //////////////////////////////////////////////////////////
|
||||
#define VERSION_MAJOR 3
|
||||
#define VERSION_MINOR 18
|
||||
#define VERSION_REV 329
|
||||
#define VERSION_BUILD 960
|
||||
#define SCINTILLA_VER 403
|
||||
#define VERSION_REV 418
|
||||
#define VERSION_BUILD 978
|
||||
#define SCINTILLA_VER 404
|
||||
#define ONIGMO_REGEX_VER 6.1.3
|
||||
#define VERSION_PATCH L" develop"
|
||||
#define VERSIONA_PATCH " develop"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user