Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: CI Builds
permissions:
contents: read
pull-requests: write

on:
pull_request:
Expand Down Expand Up @@ -36,7 +37,26 @@ jobs:
run: dotnet build --no-restore

- name: Test
run: dotnet test --no-build
run: dotnet test --no-build --verbosity normal --logger trx --collect:"XPlat Code Coverage"

- name: Merge coverage reports
if: ${{ always() && matrix.os == 'ubuntu-latest' }}
uses: danielpalme/ReportGenerator-GitHub-Action@5
with:
reports: tests/**/coverage.cobertura.xml
targetdir: coverage
reporttypes: Cobertura

- name: Generate test report
uses: bibipkins/dotnet-test-reporter@v1.6.1
if: ${{ always() && matrix.os == 'ubuntu-latest' }}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
comment-title: "Test Results"
results-path: tests/**/*.trx
coverage-path: coverage/Cobertura.xml
coverage-type: cobertura
coverage-threshold: 70

- name: Publish
run: dotnet publish src/SharpFM/SharpFM.csproj --runtime "${{ matrix.target }}" -c Debug
2 changes: 2 additions & 0 deletions src/SharpFM.Plugin.XmlViewer/XmlViewerPanel.axaml.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
using System.Diagnostics.CodeAnalysis;
using Avalonia.Controls;
using AvaloniaEdit;
using AvaloniaEdit.TextMate;
using TextMateSharp.Grammars;

namespace SharpFM.Plugin.XmlViewer;

[ExcludeFromCodeCoverage]
public partial class XmlViewerPanel : UserControl
{
private TextMate.Installation? _textMateInstallation;
Expand Down
4 changes: 3 additions & 1 deletion src/SharpFM/App.axaml.cs
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
using System;
using System.Diagnostics.CodeAnalysis;
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using SharpFM.ViewModels;
using Microsoft.Extensions.Logging;
using NLog.Extensions.Logging;
using Microsoft.Extensions.DependencyInjection;
using System;
using SharpFM.Services;

namespace SharpFM;

[ExcludeFromCodeCoverage]
public partial class App : Application
{
ILogger logger = LoggerFactory.Create(builder => builder.AddNLog()).CreateLogger<MainWindow>();
Expand Down
3 changes: 3 additions & 0 deletions src/SharpFM/AvaloniaNLogSink.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using System.Diagnostics.CodeAnalysis;
using Avalonia;
using Avalonia.Logging;
using NLog;
Expand All @@ -8,6 +9,7 @@ namespace SharpFM;
/// <summary>
/// Avalonia Log Sink that writes to NLog Loggers.
/// </summary>
[ExcludeFromCodeCoverage]
public class AvaloniaNLogSink : ILogSink
{
/// <summary>
Expand Down Expand Up @@ -43,6 +45,7 @@ private static LogLevel LogLevelToNLogLevel(LogEventLevel level)
}
}

[ExcludeFromCodeCoverage]
public static class NLogSinkExtensions
{
/// <summary>
Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/MainWindow.axaml.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Input;
Expand All @@ -14,6 +15,7 @@

namespace SharpFM;

[ExcludeFromCodeCoverage]
public partial class MainWindow : Window
{
private readonly RegistryOptions _registryOptions;
Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/Models/ClipRepository.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using NLog;

Expand All @@ -8,6 +9,7 @@ namespace SharpFM.Models;
/// <summary>
/// Clip File Repository.
/// </summary>
[ExcludeFromCodeCoverage]
public class ClipRepository
{
private static readonly Logger Log = LogManager.GetCurrentClassLogger();
Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/PluginManager/PluginManagerWindow.axaml.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Avalonia.Controls;
using Avalonia.Platform.Storage;
Expand All @@ -9,6 +10,7 @@

namespace SharpFM.PluginManager;

[ExcludeFromCodeCoverage]
public partial class PluginManagerWindow : Window
{
private readonly PluginManagerViewModel _viewModel = new();
Expand Down
6 changes: 4 additions & 2 deletions src/SharpFM/Program.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
using Avalonia;
using System;
using System.Diagnostics.CodeAnalysis;
using Avalonia;
using NLog;
using System;

namespace SharpFM;

[ExcludeFromCodeCoverage]
class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/Schema/Editor/CalculationEditorWindow.axaml.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System.Diagnostics.CodeAnalysis;
using Avalonia.Controls;
using Avalonia.Interactivity;
using AvaloniaEdit;
Expand All @@ -8,6 +9,7 @@

namespace SharpFM.Schema.Editor;

[ExcludeFromCodeCoverage]
public partial class CalculationEditorWindow : Window
{
private readonly FmField _field;
Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/Schema/Editor/TableEditorControl.axaml.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
using System;
using System.Diagnostics.CodeAnalysis;
using Avalonia.Controls;
using Avalonia.Input;
using SharpFM.Schema.Model;

namespace SharpFM.Schema.Editor;

[ExcludeFromCodeCoverage]
public partial class TableEditorControl : UserControl
{
public static FieldDataType[] DataTypes { get; } = Enum.GetValues<FieldDataType>();
Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/Scripting/Editor/BracketMatchRenderer.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using System.Diagnostics.CodeAnalysis;
using Avalonia;
using Avalonia.Media;
using AvaloniaEdit.Document;
Expand All @@ -7,6 +8,7 @@

namespace SharpFM.Scripting.Editor;

[ExcludeFromCodeCoverage]
public class BracketMatchRenderer : IBackgroundRenderer
{

Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/Scripting/Editor/ErrorMarkerRenderer.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using Avalonia;
using Avalonia.Media;
using AvaloniaEdit.Document;
using AvaloniaEdit.Rendering;

namespace SharpFM.Scripting.Editor;

[ExcludeFromCodeCoverage]
public class ErrorMarkerRenderer : IBackgroundRenderer
{
private readonly TextDocument _document;
Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/Scripting/Editor/FmScriptCompletionData.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using System.Diagnostics.CodeAnalysis;
using Avalonia.Controls;
using Avalonia.Media;
using AvaloniaEdit.Document;
Expand All @@ -7,6 +8,7 @@

namespace SharpFM.Scripting.Editor;

[ExcludeFromCodeCoverage]
public class FmScriptCompletionData : ICompletionData
{
public FmScriptCompletionData(string text, string? description = null, double priority = 0)
Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/Scripting/Editor/FmScriptRegistryOptions.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Reflection;
using TextMateSharp.Grammars;
Expand All @@ -9,6 +10,7 @@

namespace SharpFM.Scripting.Editor;

[ExcludeFromCodeCoverage]
public class FmScriptRegistryOptions : IRegistryOptions
{
public const string ScopeName = "source.fmscript";
Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/Scripting/Editor/ScriptEditorController.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Threading;
Expand All @@ -13,6 +14,7 @@ namespace SharpFM.Scripting.Editor;
/// Manages script editor behavior: validation, completion, tooltips, and document tracking.
/// Extracted from MainWindow to keep UI code thin and this logic independently testable.
/// </summary>
[ExcludeFromCodeCoverage]
public class ScriptEditorController : IDisposable
{
private readonly TextEditor _editor;
Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/Scripting/Editor/ScriptEditorTheme.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System.Diagnostics.CodeAnalysis;
using Avalonia;
using Avalonia.Media;

Expand All @@ -6,6 +7,7 @@ namespace SharpFM.Scripting.Editor;
/// <summary>
/// Shared color constants for script editor renderers.
/// </summary>
[ExcludeFromCodeCoverage]
internal static class ScriptEditorTheme
{
internal static readonly IPen ErrorPen = new Pen(Brushes.Red, 1.0);
Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/Scripting/Editor/StatementHighlightRenderer.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using Avalonia;
using Avalonia.Media;
using AvaloniaEdit.Document;
Expand All @@ -8,6 +9,7 @@

namespace SharpFM.Scripting.Editor;

[ExcludeFromCodeCoverage]
public class StatementHighlightRenderer : IBackgroundRenderer
{

Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/Services/ClipboardService.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.Input;
using FluentAvalonia.UI.Data;

namespace SharpFM.Services;

[ExcludeFromCodeCoverage]
public class ClipboardService : IClipboardService
{
private readonly Window _window;
Expand Down
2 changes: 2 additions & 0 deletions src/SharpFM/Services/FolderService.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.Platform.Storage;

namespace SharpFM.Services;

[ExcludeFromCodeCoverage]
public class FolderService(Window target) : IFolderService
{
private readonly Window _target = target;
Expand Down
Loading
Loading