temp workaround for #20

This commit is contained in:
Basile Burg 2015-07-27 02:54:39 +02:00
parent 2e0209be05
commit 6842050c6f
2 changed files with 19 additions and 18 deletions

View File

@ -463,6 +463,9 @@ var
shc: TCEPersistentShortcut; shc: TCEPersistentShortcut;
kst: TSynEditKeyStroke; kst: TSynEditKeyStroke;
begin begin
anEditor.D2Highlighter.Assign(D2Syn);
anEditor.TxtHighlighter.Assign(TxtSyn);
anEditor.completionMenuCaseCare:=fCompletionMenuCaseCare; anEditor.completionMenuCaseCare:=fCompletionMenuCaseCare;
anEditor.autoDotDelay:=fAutoDotDelay; anEditor.autoDotDelay:=fAutoDotDelay;
anEditor.hintDelay:=fHintDelay; anEditor.hintDelay:=fHintDelay;

View File

@ -101,6 +101,8 @@ type
fOldMousePos: TPoint; fOldMousePos: TPoint;
fSyncEdit: TSynPluginSyncroEdit; fSyncEdit: TSynPluginSyncroEdit;
fCompletion: TSynCompletion; fCompletion: TSynCompletion;
fD2Highlighter: TSynD2Syn;
fTxtHighlighter: TSynTxtSyn;
function getMouseFileBytePos: Integer; function getMouseFileBytePos: Integer;
procedure changeNotify(Sender: TObject); procedure changeNotify(Sender: TObject);
procedure identifierToD2Syn; procedure identifierToD2Syn;
@ -161,14 +163,16 @@ type
property TextView; property TextView;
// //
property MouseStart: Integer read getMouseFileBytePos; property MouseStart: Integer read getMouseFileBytePos;
property D2Highlighter: TSynD2Syn read fD2Highlighter;
property TxtHighlighter: TSynTxtSyn read fTxtHighlighter;
end; end;
procedure SetDefaultCoeditKeystrokes(ed: TSynEdit); procedure SetDefaultCoeditKeystrokes(ed: TSynEdit);
var var
D2Syn: TSynD2Syn; D2Syn: TSynD2Syn; // used as model to set the options when no editor exists.
LfmSyn: TSynLfmSyn; LfmSyn: TSynLfmSyn;
TxtSyn: TSynTxtSyn; TxtSyn: TSynTxtSyn; // used as model to set the options when no editor exists.
implementation implementation
@ -410,8 +414,9 @@ begin
ShiftMask := [ssCtrl]; ShiftMask := [ssCtrl];
end; end;
// //
Highlighter := D2Syn; fD2Highlighter := TSynD2Syn.create(self);
Highlighter.ResetRange; fTxtHighlighter := TSynTxtSyn.Create(self);
Highlighter := fD2Highlighter;
// //
fTempFileName := GetTempDir(false) + 'temp_' + uniqueObjStr(self) + '.d'; fTempFileName := GetTempDir(false) + 'temp_' + uniqueObjStr(self) + '.d';
fFilename := '<new document>'; fFilename := '<new document>';
@ -557,16 +562,10 @@ begin
end; end;
procedure TCESynMemo.setFocus; procedure TCESynMemo.setFocus;
var
saved: TSynCustomHighlighter;
begin begin
inherited; inherited;
checkFileDate; checkFileDate;
// //
saved := Highlighter;
Highlighter := nil;
Highlighter := saved;
//
identifierToD2Syn; identifierToD2Syn;
subjDocFocused(TCEMultiDocSubject(fMultiDocSubject), self); subjDocFocused(TCEMultiDocSubject(fMultiDocSubject), self);
end; end;
@ -714,18 +713,17 @@ end;
procedure TCESynMemo.SetHighlighter(const Value: TSynCustomHighlighter); procedure TCESynMemo.SetHighlighter(const Value: TSynCustomHighlighter);
begin begin
inherited; inherited;
fIsDSource := Highlighter = D2Syn; fIsDSource := Highlighter = fD2Highlighter;
fIsConfig := Highlighter = LfmSyn; fIsTxtFile := Highlighter = fTxtHighlighter;
fIsTxtFile := Highlighter = TxtSyn;
end; end;
procedure TCESynMemo.identifierToD2Syn; procedure TCESynMemo.identifierToD2Syn;
begin begin
fIdentifier := GetWordAtRowCol(LogicalCaretXY); fIdentifier := GetWordAtRowCol(LogicalCaretXY);
if Highlighter = D2Syn then if Highlighter = fD2Highlighter then
D2Syn.CurrentIdentifier := fIdentifier fD2Highlighter.CurrentIdentifier := fIdentifier
else if Highlighter = TxtSyn then else if Highlighter = fTxtHighlighter then
TxtSyn.CurrIdent := fIdentifier; fTxtHighlighter.CurrIdent := fIdentifier;
end; end;
procedure TCESynMemo.changeNotify(Sender: TObject); procedure TCESynMemo.changeNotify(Sender: TObject);
@ -762,7 +760,7 @@ begin
fFilename := aFilename; fFilename := aFilename;
ext := extractFileExt(aFilename); ext := extractFileExt(aFilename);
if dExtList.IndexOf(ext) <> -1 then if dExtList.IndexOf(ext) <> -1 then
Highlighter := D2Syn; Highlighter := fD2Highlighter;
FileAge(fFilename, fFileDate); FileAge(fFilename, fFileDate);
fModified := false; fModified := false;
if fFilename <> fTempFileName then if fFilename <> fTempFileName then