Skip to content

Commit

Permalink
clean
Browse files Browse the repository at this point in the history
  • Loading branch information
HendrikMennen committed Dec 9, 2023
1 parent d1186f0 commit 6d956c3
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 71 deletions.
134 changes: 65 additions & 69 deletions src/OneWare.Core/Views/DockViews/EditView.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -622,87 +622,83 @@ private void TextEditor_TextArea_TextEntered(object? sender, TextInputEventArgs
{
if(ViewModel?.DisableEditViewEvents ?? true) return;

//Apply Caret difference
if (CodeBox.CaretOffset + _caretDiff < 0) CodeBox.CaretOffset = 0;
else if (CodeBox.CaretOffset + _caretDiff > CodeBox.Text.Length) CodeBox.CaretOffset = CodeBox.Text.Length;
else CodeBox.CaretOffset += _caretDiff;
_caretDiff = 0;
// //Apply Caret difference
// if (CodeBox.CaretOffset + _caretDiff < 0) CodeBox.CaretOffset = 0;
// else if (CodeBox.CaretOffset + _caretDiff > CodeBox.Text.Length) CodeBox.CaretOffset = CodeBox.Text.Length;
// else CodeBox.CaretOffset += _caretDiff;
// _caretDiff = 0;

//Language Specific Type Assistance
_typeAssistance?.TextEntered(e);

#region Detect Auto Format / Language Specific?

_enteredString += e.Text;
var startOffset = -1;
if (e.Text == "}")
startOffset = CodeBox.Text[..CodeBox.CaretOffset].LastIndexOf("{", StringComparison.Ordinal);
else if (e.Text == ")")
startOffset = CodeBox.Text[..CodeBox.CaretOffset].LastIndexOf("(", StringComparison.Ordinal);
else if (_enteredString.Contains("#endregion"))
startOffset = CodeBox.Text[..CodeBox.CaretOffset].LastIndexOf("#region", StringComparison.Ordinal);
if (_enteredString.Length > 10) _enteredString = _enteredString.Remove(0, 1);

if (startOffset >= 0)
{
var startLineNumber = CodeBox.Document.GetLineByOffset(startOffset).LineNumber;
var endLineNumber = CodeBox.Document.GetLineByOffset(CodeBox.CaretOffset).LineNumber;
if (_settingsService.GetSettingValue<bool>("Editor_UseAutoFormatting"))
_typeAssistance?.AutoIndent(startLineNumber, endLineNumber);
}

#endregion
// #region Detect Auto Format / Language Specific?
//
// _enteredString += e.Text;
// var startOffset = -1;
// if (e.Text == "}")
// startOffset = CodeBox.Text[..CodeBox.CaretOffset].LastIndexOf("{", StringComparison.Ordinal);
// else if (e.Text == ")")
// startOffset = CodeBox.Text[..CodeBox.CaretOffset].LastIndexOf("(", StringComparison.Ordinal);
// else if (_enteredString.Contains("#endregion"))
// startOffset = CodeBox.Text[..CodeBox.CaretOffset].LastIndexOf("#region", StringComparison.Ordinal);
// if (_enteredString.Length > 10) _enteredString = _enteredString.Remove(0, 1);
//
// if (startOffset >= 0)
// {
// var startLineNumber = CodeBox.Document.GetLineByOffset(startOffset).LineNumber;
// var endLineNumber = CodeBox.Document.GetLineByOffset(CodeBox.CaretOffset).LineNumber;
// if (_settingsService.GetSettingValue<bool>("Editor_UseAutoFormatting"))
// _typeAssistance?.AutoIndent(startLineNumber, endLineNumber);
// }
// //#endregion
}

//Difference between TextEntering and TextEntered
private int _caretDiff;

private void TextEditor_TextArea_TextEntering(object? sender, TextInputEventArgs e)
{
if(ViewModel?.DisableEditViewEvents ?? true) return;

if (e.Text is null) return;

if (CodeBox.CaretOffset > 1 && CodeBox.CaretOffset <= CodeBox.Text.Length)
if (_settingsService.GetSettingValue<bool>("Editor_UseAutoBracket"))
{
if (e.Text[0] == '(')
{
e.Text += ')';
_caretDiff = -1;
}
else if (e.Text[0] == '{')
{
e.Text += '}';
_caretDiff = -1;
}
else if (e.Text[0] == ')' && CodeBox.CaretOffset > 1 &&
CodeBox.CaretOffset < CodeBox.Document.TextLength &&
CodeBox.Text[CodeBox.CaretOffset] == ')')
{
var br = 0;
for (var i = CodeBox.CaretOffset - 1; i >= 0; i--)
{
if (CodeBox.Text[i] == '{') break;
if (CodeBox.Text[i] == '(') br++;
if (CodeBox.Text[i] == ')') br--;
}

if (br > 0)
{
e.Text = "";
_caretDiff = 1;
return; //Dont continue without text
}
}
else if (e.Text[0] == '}' && CodeBox.CaretOffset > 1 &&
CodeBox.Text[CodeBox.CaretOffset - 1] == '{')
{
e.Text = "";
_caretDiff = 1;
return; //Dont continue without text
}
}
// if (CodeBox.CaretOffset > 1 && CodeBox.CaretOffset <= CodeBox.Text.Length)
// if (_settingsService.GetSettingValue<bool>("Editor_UseAutoBracket"))
// {
// if (e.Text[0] == '(')
// {
// e.Text += ')';
// _caretDiff = -1;
// }
// else if (e.Text[0] == '{')
// {
// e.Text += '}';
// _caretDiff = -1;
// }
// else if (e.Text[0] == ')' && CodeBox.CaretOffset > 1 &&
// CodeBox.CaretOffset < CodeBox.Document.TextLength &&
// CodeBox.Text[CodeBox.CaretOffset] == ')')
// {
// var br = 0;
// for (var i = CodeBox.CaretOffset - 1; i >= 0; i--)
// {
// if (CodeBox.Text[i] == '{') break;
// if (CodeBox.Text[i] == '(') br++;
// if (CodeBox.Text[i] == ')') br--;
// }
//
// if (br > 0)
// {
// e.Text = "";
// _caretDiff = 1;
// return; //Dont continue without text
// }
// }
// else if (e.Text[0] == '}' && CodeBox.CaretOffset > 1 &&
// CodeBox.Text[CodeBox.CaretOffset - 1] == '{')
// {
// e.Text = "";
// _caretDiff = 1;
// return; //Dont continue without text
// }
// }

//Language Specific TypeAssistance
_typeAssistance?.TextEntering(e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -741,14 +741,14 @@ protected IEnumerable<TextDocumentContentChangeEvent> ConvertChanges(DocumentCha
? c.RemovalLength - lastIndexNewLine
: location.Column + c.RemovalLength;

var endlocation = new TextLocation(location.Line + newlines, lengthAfterLastNewLine);
var endLocation = new TextLocation(location.Line + newlines, lengthAfterLastNewLine);

var docChange = new TextDocumentContentChangeEvent
{
Range = new Range
{
Start = new Position(location.Line - 1, location.Column - 1),
End = new Position(endlocation.Line - 1, endlocation.Column - 1)
End = new Position(endLocation.Line - 1, endLocation.Column - 1)
},
Text = e.InsertedText.Text,
RangeLength = c.RemovalLength
Expand Down

0 comments on commit 6d956c3

Please sign in to comment.