Skip to content

Commit

Permalink
Add barebones analyser definition and failing tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bdach committed May 16, 2024
1 parent c352ef2 commit ecce3f8
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using System.Threading.Tasks;
using LocalisationAnalyser.Analysers;
using Xunit;

namespace LocalisationAnalyser.Tests.Analysers
{
public class LocalisationKeyUsedMultipleTimesInClassAnalyserTests : AbstractAnalyserTests<LocalisationKeyUsedMultipleTimesInClassAnalyser>
{
[Theory]
[InlineData("DuplicatedLocalisationKeys")]
public Task RunTest(string name) => Check(name);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using osu.Framework.Localisation;

namespace TestProject.Localisation
{
public static class CommonStrings
{
private const string prefix = @"TestProject.Localisation.Common";

/// <summary>
/// "first string"
/// </summary>
public static LocalisableString FirstString => new TranslatableString(getKey([|@"first_string"|]), @"first string");

/// <summary>
/// "second string"
/// </summary>
public static LocalisableString SecondString => new TranslatableString(getKey([|@"first_string"|]), @"second string");

/// <summary>
/// "third string"
/// </summary>
public static LocalisableString ThirdString => new TranslatableString(getKey(@"third_string"), @"third string");

/// <summary>
/// "first string with arguments (like {0})"
/// </summary>
public static LocalisableString FirstStringWithArguments(string test) => new TranslatableString(getKey([|@"first_string"|]), @"first string with arguments (like {0})");

/// <summary>
/// "second string with arguments (like {0})"
/// </summary>
public static LocalisableString SecondStringWithArguments(string test) => new TranslatableString(getKey(@"second_string_with_args"), @"second string with arguments (like {0})");

private static string getKey(string key) => $@"{prefix}:{key}";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Diagnostics;

namespace LocalisationAnalyser.Analysers
{
[DiagnosticAnalyzer(LanguageNames.CSharp)]
public class LocalisationKeyUsedMultipleTimesInClassAnalyser : AbstractMemberAnalyser
{
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics =>
ImmutableArray.Create(DiagnosticRules.LOCALISATION_KEY_USED_MULTIPLE_TIMES_IN_CLASS);
}
}

0 comments on commit ecce3f8

Please sign in to comment.