Skip to content

Commit f7c46b2

Browse files
authored
Merge pull request #127 from Rekkonnect/dev/prepare-1.2.2
Prepare 1.2.2
2 parents b75c4cf + 394de1c commit f7c46b2

File tree

8 files changed

+49
-26
lines changed

8 files changed

+49
-26
lines changed

README.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@ The project was inspired by the task for applying into a Roslyn internship posit
1616

1717
The main design inspiration is [SharpLab](https://sharplab.io/). The syntax view feature of SharpLab is the main design that the app built upon.
1818

19-
Despite not applying for the internship, I wanted to finish the project and release it into a usable state without entering the depths of feature creep.
19+
Despite not applying for the internship, I wanted to finish the project and release it into a usable state without entering the depths of feature creep. Feature creep inevitably occurred.
2020

2121
## Usage
2222

23-
For Windows, download from the [Releases](https://github.com/Rekkonnect/Syndiesis/releases) page. For macOS and Linux, you have to manually compile the program (refer to the section below).
23+
For Windows, Linux and macOS on x64 and arm64 architectures, download from the [Releases](https://github.com/Rekkonnect/Syndiesis/releases) page. You may still manually compile the program on your machine with the instructions written below.
2424

25-
The program is designed to be cross-platform for desktop (including Windows, Linux and macOS). It's heavily tested to run on Windows 10, and it's moderately tested on Windows 11 and macOS. Please file an issue if platform-specific problems occur.
25+
The program is designed to be cross-platform on desktop machines (including Windows, Linux and macOS). It's heavily tested to run on Windows 10, and it's moderately tested on Windows 11 and macOS. Please file an issue if platform-specific problems occur.
2626

2727
Check the change log [here](/docs/changelog/README.md).
2828

29-
View the [wiki](https://github.com/Rekkonnect/Syndiesis/wiki) for detailed documentation.
29+
View the [wiki](https://github.com/Rekkonnect/Syndiesis/wiki) for detailed documentation, including a list of keybinds.
3030

3131
### Compiling
3232

@@ -44,13 +44,13 @@ https://github.com/user-attachments/assets/19821a70-e020-4929-9662-584d1afb6416
4444
- Visual Studio 2022
4545
- .NET 9.0
4646
- C# 13.0
47-
- [Avalonia 11.0](https://github.com/AvaloniaUI/Avalonia)
47+
- [Avalonia 11.3](https://github.com/AvaloniaUI/Avalonia)
4848

4949
### Dependencies
5050

51-
- [Roslyn 4.12.0](https://github.com/dotnet/roslyn)
52-
- [AvaloniaEdit](https://github.com/avaloniaUI/AvaloniaEdit), for the code editor
53-
- [jamarino/IntervalTree](https://github.com/jamarino/IntervalTree), for the diagnostics
51+
- [Roslyn 4.14.0](https://github.com/dotnet/roslyn)
52+
- [AvaloniaEdit](https://github.com/avaloniaUI/AvaloniaEdit) for the code editor
53+
- [jamarino/IntervalTree](https://github.com/jamarino/IntervalTree) for the diagnostics
5454

5555
## Features
5656

@@ -64,6 +64,7 @@ Below is a short list of features:
6464
- Diagnostics display
6565
- Automatic recognition of the snippet's language (C# or VB)
6666
- Selection of any available language version
67+
- Quick symbol info
6768
- Syntax and semantic analysis visualizer
6869
- Current caret syntax node highlighting
6970
- Tree view of nodes
@@ -78,18 +79,18 @@ Below is a short list of features:
7879
A large portion of the app is built using basic components in Avalonia. The code editor is from [AvaloniaEdit](https://github.com/avaloniaUI/AvaloniaEdit).
7980
Some icons were taken from the free version of [FontAwesome](https://fontawesome.com/).
8081

81-
### Bugs and issues
82+
### Bugs and Issues
8283

8384
Any issues regarding the code editor are most likely to be reported in [AvaloniaEdit](https://github.com/avaloniaUI/AvaloniaEdit). This includes behavior not specific to Syndiesis. Issues will be closed if they are specific to AvaloniaEdit, and must be reported there.
8485

8586
Syndiesis exposes data retrieved from Roslyn itself with minimal intervention for readability purposes. If you encounter misrepresented data, it is probably a Roslyn bug, but feel free to report it regardless. Examples of known Roslyn bugs include:
8687
- Fixed buffer size expression has no symbol info ([dotnet/roslyn#75113](https://github.com/dotnet/roslyn/issues/75113))
8788

88-
### Desired features
89+
### Desired Features
8990

9091
Desired features among other issues are listed in the [issues](https://github.com/Rekkonnect/Syndiesis/issues).
9192

92-
## Design philosophy
93+
## Design Philosophy
9394

9495
The syntax visualizer should provide detailed information about how Roslyn parses the given C# code snippet, and in a pretty and user-friendly format. SharpLab lacks in readability of the tree, and it also doesn't paint the entire picture as intended.
9596

Syndiesis/Controls/Editor/QuickInfo/BaseVisualBasicMemberCommonInlinesCreator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public abstract class BaseVisualBasicMemberCommonInlinesCreator<TSymbol>(
1010
: BaseCommonMemberCommonInlinesCreator<TSymbol>(parentContainer)
1111
where TSymbol : class, ISymbol
1212
{
13-
protected GroupedRunInline.IBuilder? CreateParameterListInline(
13+
protected new GroupedRunInline.IBuilder? CreateParameterListInline(
1414
ImmutableArray<IParameterSymbol> parameters)
1515
{
1616
int parameterLength = parameters.Length;

Syndiesis/Controls/Inlines/ComplexGroupedRunInline.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public override void AppendToInlines(InlineCollection inlines)
4646

4747
public sealed class Builder(
4848
List<RunOrGrouped>? children = null)
49-
: Builder<ComplexGroupedRunInline>()
49+
: Builder<ComplexGroupedRunInline>
5050
{
5151
public List<RunOrGrouped>? Children { get; set; } = children;
5252

Syndiesis/Controls/Inlines/GroupedRunInline.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ public interface IBuilder
105105
public sealed RunOrGrouped AsRunOrGrouped => new(this);
106106
}
107107

108-
public abstract class Builder<T>(string? OverrideText = null)
108+
public abstract class Builder<T>
109109
: UIBuilder<T>, IBuilder
110110
where T : GroupedRunInline
111111
{

Syndiesis/Controls/Inlines/SimpleGroupedRunInline.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public override void AppendToInlines(InlineCollection inlines)
4444

4545
public sealed class Builder(
4646
List<UIBuilder.Run>? children = null)
47-
: Builder<SimpleGroupedRunInline>()
47+
: Builder<SimpleGroupedRunInline>
4848
{
4949
public List<UIBuilder.Run>? Children { get; set; } = children;
5050

Syndiesis/Controls/Inlines/SingleRunInline.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ protected override void CalculateText(StringBuilder builder)
3535
public sealed class Builder(
3636
UIBuilder.Run run,
3737
string? overrideText = null)
38-
: Builder<SingleRunInline>(overrideText)
38+
: Builder<SingleRunInline>
3939
{
4040
public UIBuilder.Run Run { get; } = run;
4141
public string? OverrideText { get; } = overrideText;

Syndiesis/Syndiesis.csproj

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,28 @@
44
<OutputType>WinExe</OutputType>
55
<TargetFramework>net9.0</TargetFramework>
66
<Nullable>enable</Nullable>
7-
<TrimMode>link</TrimMode>
87
<BuiltInComInteropSupport>true</BuiltInComInteropSupport>
98
<Configurations>Debug;Release;Allow Dev Errors</Configurations>
109
</PropertyGroup>
1110

12-
<PropertyGroup>
13-
</PropertyGroup>
14-
1511
<PropertyGroup Label="Metadata">
16-
<Version>1.2.1</Version>
12+
<Version>1.2.2</Version>
1713
<Authors>Alex Kalfakakos</Authors>
18-
<Copyright>© 2024 Alex Kalfakakos</Copyright>
14+
<Copyright>© 2024-2025 Alex Kalfakakos</Copyright>
1915
<Description>The most revolutionary syntax visualizer for C#</Description>
2016
<RepositoryUrl>https://github.com/Rekkonnect/Syndiesis</RepositoryUrl>
2117
<RepositoryType>git</RepositoryType>
2218
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
2319
</PropertyGroup>
2420

21+
<PropertyGroup
22+
Label="Publish"
23+
Condition="'$(Configuration)'=='Release'">
24+
<RuntimeIdentifiers>win-x64;win-arm64;osx-x64;osx-arm64;linux-x64;linux-arm64</RuntimeIdentifiers>
25+
<PublishReadyToRun>true</PublishReadyToRun>
26+
<TrimMode>link</TrimMode>
27+
</PropertyGroup>
28+
2529
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Allow Dev Errors|AnyCPU'">
2630
<DefineConstants>$(DefineConstants);ALLOW_DEV_ERRORS</DefineConstants>
2731
</PropertyGroup>
@@ -48,11 +52,11 @@
4852
<Version>11.0.10</Version>
4953
</PackageReference>
5054
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.0" />
51-
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" />
55+
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.0" />
5256
<PackageReference Include="Garyon" Version="0.4.1" />
53-
<PackageReference Include="Jamarino.IntervalTree" Version="1.2.1" />
54-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.12.0" />
55-
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic" Version="4.12.0" />
57+
<PackageReference Include="Jamarino.IntervalTree" Version="1.2.2" />
58+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" />
59+
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic" Version="4.14.0" />
5660
<PackageReference Include="RoseLynn" Version="0.6.4.1" />
5761
<PackageReference Include="Serilog" Version="3.1.1" />
5862
<PackageReference Include="Serilog.Exceptions" Version="8.4.0" />

publish.ps1

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
$projectFilePath = "Syndiesis/Syndiesis.csproj"
2+
$project = [xml](Get-Content $projectFilePath)
3+
4+
$versionNode = Select-Xml -Xml $project -XPath "//PropertyGroup/Version"
5+
$version = $versionNode.Node.InnerText
6+
7+
if ($version -eq $null)
8+
{
9+
throw "The project's version could not be determined. Aborting publish."
10+
exit 80085
11+
}
12+
13+
dotnet publish Syndiesis/ -c Release -r win-x64 -o ./artifacts/${version}/win-x64
14+
dotnet publish Syndiesis/ -c Release -r win-arm64 -o ./artifacts/${version}/win-arm64
15+
dotnet publish Syndiesis/ -c Release -r linux-x64 -o ./artifacts/${version}/linux-x64
16+
dotnet publish Syndiesis/ -c Release -r linux-arm64 -o ./artifacts/${version}/linux-arm64
17+
dotnet publish Syndiesis/ -c Release -r osx-x64 -o ./artifacts/${version}/osx-x64
18+
dotnet publish Syndiesis/ -c Release -r osx-arm64 -o ./artifacts/${version}/osx-arm64

0 commit comments

Comments
 (0)