Compare commits
6 Commits
42b0b0acf9
...
0.4.2
| Author | SHA1 | Date | |
|---|---|---|---|
| 9b8900d7a7 | |||
|
792bba4875
|
|||
|
1c39e146fb
|
|||
|
47bcd0be34
|
|||
|
445f731170
|
|||
|
c7aa30581d
|
@@ -14,7 +14,7 @@ public class SlangFormatter : ICodeFormatter
|
||||
private CancellationTokenSource? _lspCancellationToken;
|
||||
private object _tokenLock = new();
|
||||
|
||||
protected static Editor? Ic10Editor = null;
|
||||
protected Editor? Ic10Editor = null;
|
||||
private IC10CodeFormatter iC10CodeFormatter = new IC10CodeFormatter();
|
||||
private string ic10CompilationResult = "";
|
||||
private List<SourceMapEntry> ic10SourceMap = new();
|
||||
@@ -194,13 +194,17 @@ public class SlangFormatter : ICodeFormatter
|
||||
|
||||
private void UpdateIc10Formatter()
|
||||
{
|
||||
if (Ic10Editor is null)
|
||||
var tab = Editor.ParentTab;
|
||||
if (Ic10Editor == null)
|
||||
{
|
||||
var tab = Editor.ParentTab;
|
||||
iC10CodeFormatter = new IC10CodeFormatter();
|
||||
Ic10Editor = new Editor(Editor.KeyHandler);
|
||||
Ic10Editor.IsReadOnly = true;
|
||||
iC10CodeFormatter.Editor = Ic10Editor;
|
||||
}
|
||||
|
||||
if (tab.Editors.Count < 2)
|
||||
{
|
||||
tab.AddEditor(Ic10Editor);
|
||||
}
|
||||
|
||||
@@ -219,33 +223,26 @@ public class SlangFormatter : ICodeFormatter
|
||||
|
||||
if (lines.Count() < 1)
|
||||
{
|
||||
Ic10Editor.Selection = new TextRange
|
||||
{
|
||||
End = new TextPosition { Col = 0, Line = 0 },
|
||||
Start = new TextPosition { Col = 0, Line = 0 },
|
||||
};
|
||||
return;
|
||||
}
|
||||
// get the total range of the IC10 source for the selected Slang line
|
||||
var max = lines.Max(line => line.Ic10Line);
|
||||
var min = lines.Min(line => line.Ic10Line);
|
||||
|
||||
Ic10Editor.CaretPos = new TextPosition { Col = 0, Line = (int)max };
|
||||
|
||||
// highlight all the IC10 lines that are within the specified range
|
||||
foreach (var index in Enumerable.Range((int)min, (int)(max - min) + 1))
|
||||
Ic10Editor.Selection.Start = new TextPosition { Col = 0, Line = (int)min };
|
||||
Ic10Editor.Selection.End = new TextPosition
|
||||
{
|
||||
var lineText = Ic10Editor.Lines[index].Text;
|
||||
|
||||
var newLine = new StyledLine(
|
||||
lineText,
|
||||
[
|
||||
new SemanticToken
|
||||
{
|
||||
Column = 0,
|
||||
Length = lineText.Length,
|
||||
Line = index,
|
||||
Background = ColorIdentifier,
|
||||
Color = ColorFromHTML("black"),
|
||||
},
|
||||
]
|
||||
);
|
||||
|
||||
Ic10Editor.Lines[index] = newLine;
|
||||
}
|
||||
Col = Ic10Editor.Lines[(int)max].Text.Length,
|
||||
Line = (int)max,
|
||||
};
|
||||
}
|
||||
|
||||
// This runs on the Main Thread
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Text;
|
||||
|
||||
namespace Slang;
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
use crate::compile;
|
||||
use anyhow::Result;
|
||||
use indoc::indoc;
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
use crate::compile;
|
||||
use indoc::indoc;
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
use crate::compile;
|
||||
use indoc::indoc;
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
use crate::compile;
|
||||
use indoc::indoc;
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
use crate::compile;
|
||||
use indoc::indoc;
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
use crate::compile;
|
||||
use anyhow::Result;
|
||||
use indoc::indoc;
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
use crate::compile;
|
||||
use indoc::indoc;
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user