mirror of
https://github.com/nsnail/ns-ext.git
synced 2025-04-16 00:02:49 +08:00
parent
7557cb0538
commit
b32fe597dd
@ -64,7 +64,7 @@ module.exports = {
|
||||
maxSubjectLength: Infinity,
|
||||
minSubjectLength: 0,
|
||||
scopeOverrides: undefined,
|
||||
defaultBody: '',
|
||||
defaultBody: '[skip ci]',
|
||||
defaultIssues: '',
|
||||
defaultScope: '',
|
||||
defaultSubject: ''
|
||||
|
@ -1,56 +1,59 @@
|
||||
# 此文件为 EditorConfig 配置文件,用于设置跨编辑器的代码格式化规则。
|
||||
# root = true 表示此文件是根配置文件。
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
ij_xml_attribute_wrap = off
|
||||
ij_xml_text_wrap = off
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
insert_final_newline = false
|
||||
trim_trailing_whitespace = true
|
||||
charset = utf-8 # 文件字符集为 UTF-8
|
||||
end_of_line = lf # 行结束符为 LF
|
||||
ij_xml_attribute_wrap = off # IntelliJ IDEA 中 XML 属性不换行
|
||||
ij_xml_text_wrap = off # IntelliJ IDEA 中 XML 文本不换行
|
||||
indent_size = 4 # 缩进大小为 4 个空格
|
||||
indent_style = space # 使用空格进行缩进
|
||||
insert_final_newline = false # 不在文件末尾插入空行
|
||||
max_line_length = 150 # 行长度限制为 150 个字符
|
||||
trim_trailing_whitespace = true # 删除行尾的空格
|
||||
|
||||
[{*.json,*.yml}]
|
||||
indent_size = 2
|
||||
indent_size = 2 # 对于 JSON 和 YAML 文件,缩进大小为 2 个空格
|
||||
|
||||
[*.cs]
|
||||
dotnet_analyzer_diagnostic.severity = warning
|
||||
dotnet_analyzer_diagnostic.severity = warning # 设置 C# 文件中所有 dotnet_analyzer_diagnostic 的严重性级别为 warning
|
||||
|
||||
# ReSharper properties
|
||||
resharper_align_linq_query = true
|
||||
resharper_align_multiline_argument = true
|
||||
resharper_align_multiline_array_and_object_initializer = true
|
||||
resharper_align_multiline_binary_patterns = true
|
||||
resharper_align_multiline_calls_chain = true
|
||||
resharper_align_multiline_extends_list = true
|
||||
resharper_align_multiline_parameter = true
|
||||
resharper_align_multiline_property_pattern = true
|
||||
resharper_align_multiline_switch_expression = true
|
||||
resharper_align_multiple_declaration = true
|
||||
resharper_align_multline_type_parameter_constrains = true
|
||||
resharper_align_multline_type_parameter_list = true
|
||||
resharper_align_tuple_components = true
|
||||
resharper_allow_comment_after_lbrace = true
|
||||
resharper_blank_lines_before_single_line_comment = 1
|
||||
resharper_csharp_empty_block_style = together_same_line
|
||||
resharper_csharp_outdent_commas = true
|
||||
resharper_csharp_place_type_constraints_on_same_line = false
|
||||
resharper_csharp_stick_comment = false
|
||||
resharper_csharp_wrap_before_comma = true
|
||||
resharper_indent_nested_for_stmt = true
|
||||
resharper_indent_nested_foreach_stmt = true
|
||||
resharper_indent_nested_while_stmt = true
|
||||
resharper_indent_preprocessor_if = usual_indent
|
||||
resharper_indent_preprocessor_other = usual_indent
|
||||
resharper_int_align = true
|
||||
resharper_keep_existing_arrangement = false
|
||||
resharper_place_linq_into_on_new_line = false
|
||||
resharper_place_simple_embedded_statement_on_same_line = false
|
||||
resharper_place_simple_switch_expression_on_single_line = true
|
||||
resharper_wrap_before_eq = true
|
||||
resharper_wrap_chained_method_calls = chop_if_long
|
||||
resharper_wrap_switch_expression = chop_if_long
|
||||
resharper_align_linq_query = true # 启用对LINQ查询的对齐
|
||||
resharper_align_multiline_argument = true # 启用多行参数的对齐
|
||||
resharper_align_multiline_array_and_object_initializer = true # 启用多行数组和对象初始化器的对齐
|
||||
resharper_align_multiline_binary_patterns = true # 启用多行二元模式的对齐
|
||||
resharper_align_multiline_calls_chain = true # 启用多行调用链的对齐
|
||||
resharper_align_multiline_extends_list = true # 启用多行扩展列表的对齐
|
||||
resharper_align_multiline_parameter = true # 启用多行参数的对齐
|
||||
resharper_align_multiline_property_pattern = true # 启用多行属性模式的对齐
|
||||
resharper_align_multiline_switch_expression = true # 启用多行切换表达式的对齐
|
||||
resharper_align_multiple_declaration = true # 启用多个声明的对齐
|
||||
resharper_align_multline_type_parameter_constrains = true # 启用多行类型参数约束的对齐
|
||||
resharper_align_multline_type_parameter_list = true # 启用多行类型参数列表的对齐
|
||||
resharper_align_tuple_components = true # 启用元组组件的对齐
|
||||
resharper_allow_comment_after_lbrace = true # 允许在大括号前添加注释
|
||||
resharper_blank_lines_before_single_line_comment = 1 # 在单行注释前添加空行
|
||||
resharper_csharp_empty_block_style = together_same_line # 设置空块的样式为“在一起,在同一行”
|
||||
resharper_csharp_outdent_commas = true # 是否将逗号后的代码退缩
|
||||
resharper_csharp_place_type_constraints_on_same_line = false # 在类型约束上是否保持在同一行
|
||||
resharper_csharp_stick_comment = false # 是否将注释粘贴在代码行的末尾
|
||||
resharper_csharp_wrap_before_comma = true # 在逗号前是否添加换行
|
||||
resharper_indent_nested_for_stmt = true # 是否对嵌套的for语句进行缩进
|
||||
resharper_indent_nested_foreach_stmt = true # 是否对嵌套的foreach语句进行缩进
|
||||
resharper_indent_nested_while_stmt = true # 是否对嵌套的while语句进行缩进
|
||||
resharper_indent_preprocessor_if = usual_indent # 设置预处理器指令`if`的缩进方式
|
||||
resharper_indent_preprocessor_other = usual_indent # 设置其他预处理器指令的缩进方式
|
||||
resharper_int_align = true # 启用整数对齐
|
||||
resharper_keep_existing_arrangement = false # 在重新排列时是否保留现有的布局
|
||||
resharper_place_linq_into_on_new_line = false # 是否将LINQ表达式放在新行
|
||||
resharper_place_simple_embedded_statement_on_same_line = false # 是否将简单的嵌入式语句放在同一行
|
||||
resharper_place_simple_switch_expression_on_single_line = true # 是否将简单的切换表达式放在单行
|
||||
resharper_wrap_before_eq = true # 在等号前是否添加换行
|
||||
resharper_wrap_chained_method_calls = chop_if_long # 是否拆分链式方法调用
|
||||
resharper_wrap_switch_expression = chop_if_long # 是否拆分切换表达式
|
||||
|
||||
# Microsoft .NET properties
|
||||
csharp_indent_braces = false
|
||||
csharp_new_line_before_open_brace = local_functions, methods, types
|
||||
csharp_indent_braces = false # 设置为false表示花括号不跟随代码行缩进
|
||||
csharp_new_line_before_open_brace = local_functions, methods, types # 这里设置为local_functions, methods, types,表示在局部函数、方法和类型定义的开放花括号前应换行
|
6
.gitignore
vendored
6
.gitignore
vendored
@ -55,7 +55,7 @@ nunit-*.xml
|
||||
dlldata.c
|
||||
|
||||
# Benchmark Results
|
||||
BenchmarkNSExtNet.Artifacts/
|
||||
BenchmarkDotNet.Artifacts/
|
||||
|
||||
# .NET Core
|
||||
project.lock.json
|
||||
@ -130,12 +130,12 @@ $tf/
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.NSExtSettings.user
|
||||
*.DotSettings.user
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# NSExtCover is a Code Coverage Tool
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# AxoCover is a Code Coverage Tool
|
||||
|
@ -22,11 +22,11 @@
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<RepositoryUrl>https://github.com/nsnail/NSExt.git</RepositoryUrl>
|
||||
<RootNamespace>NSExt</RootNamespace>
|
||||
<TargetFrameworks>net6.0;net7.0;net8.0</TargetFrameworks>
|
||||
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
|
||||
<Title>$(AssemblyName)</Title>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MinVer" Version="5.0.0">
|
||||
<PackageReference Include="MinVer" Version="6.0.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
|
139
NSExt.sln
139
NSExt.sln
@ -8,87 +8,88 @@ EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "backend", "backend", "{4DAF9366-855F-46BB-AE4C-660C92FA0697}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "meta", "meta", "{5198A03D-0CAC-4828-A807-34A693F73859}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
.commitlintrc.js = .commitlintrc.js
|
||||
.editorconfig = .editorconfig
|
||||
.gitattributes = .gitattributes
|
||||
.gitignore = .gitignore
|
||||
CHANGELOG.md = CHANGELOG.md
|
||||
Directory.Build.props = Directory.Build.props
|
||||
dotnet-tools.json = dotnet-tools.json
|
||||
global.json = global.json
|
||||
key.snk = key.snk
|
||||
LICENSE = LICENSE
|
||||
NSExt.sln.DotSettings = NSExt.sln.DotSettings
|
||||
nuget.config = nuget.config
|
||||
package.json = package.json
|
||||
README.md = README.md
|
||||
README.zh-CN.md = README.zh-CN.md
|
||||
EndProjectSection
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
.commitlintrc.js = .commitlintrc.js
|
||||
.editorconfig = .editorconfig
|
||||
.gitattributes = .gitattributes
|
||||
.gitignore = .gitignore
|
||||
CHANGELOG.md = CHANGELOG.md
|
||||
Directory.Build.props = Directory.Build.props
|
||||
dotnet-tools.json = dotnet-tools.json
|
||||
global.json = global.json
|
||||
key.snk = key.snk
|
||||
LICENSE = LICENSE
|
||||
NSExt.sln.DotSettings = NSExt.sln.DotSettings
|
||||
nuget.config = nuget.config
|
||||
package.json = package.json
|
||||
README.md = README.md
|
||||
README.zh-CN.md = README.zh-CN.md
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{BB0B25C9-0901-4923-913F-00F9A6B352A5}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
1.git.pull.request.ps1 = scripts/1.git.pull.request.ps1
|
||||
2.git.release.ps1 = scripts/2.git.release.ps1
|
||||
3.git.recreate.branch.ps1 = scripts/3.git.recreate.branch.ps1
|
||||
clean.ln.csx = scripts/clean.ln.csx
|
||||
code.clean.csx = scripts/code.clean.csx
|
||||
code.clean.ps1 = scripts/code.clean.ps1
|
||||
gen.cs.tt = scripts/gen.cs.tt
|
||||
gen.ln.cmd = scripts/gen.ln.cmd
|
||||
gen.resx.tt = scripts/gen.resx.tt
|
||||
image.optimize.csx = scripts/image.optimize.csx
|
||||
install.as.tpl.ps1 = scripts/install.as.tpl.ps1
|
||||
rename.csx = scripts/rename.csx
|
||||
resharper.full.ps1 = scripts/resharper.full.ps1
|
||||
switcher.nsext.json = scripts/switcher.nsext.json
|
||||
switcher.ps1 = scripts/switcher.ps1
|
||||
sync.sln.files.csx = scripts/sync.sln.files.csx
|
||||
EndProjectSection
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
1.git.pull.request.ps1 = scripts/1.git.pull.request.ps1
|
||||
2.git.release.ps1 = scripts/2.git.release.ps1
|
||||
3.git.recreate.branch.ps1 = scripts/3.git.recreate.branch.ps1
|
||||
4.git.del.obsolete.tags.ps1 = scripts/4.git.del.obsolete.tags.ps1
|
||||
clean.ln.csx = scripts/clean.ln.csx
|
||||
code.clean.csx = scripts/code.clean.csx
|
||||
code.clean.ps1 = scripts/code.clean.ps1
|
||||
find.unused.ln.csx = scripts/find.unused.ln.csx
|
||||
gen.cs.tt = scripts/gen.cs.tt
|
||||
gen.ln.cmd = scripts/gen.ln.cmd
|
||||
gen.resx.tt = scripts/gen.resx.tt
|
||||
image.optimize.csx = scripts/image.optimize.csx
|
||||
install.as.tpl.ps1 = scripts/install.as.tpl.ps1
|
||||
rename.csx = scripts/rename.csx
|
||||
resharper.full.ps1 = scripts/resharper.full.ps1
|
||||
switch.nuget.or.project.csx = scripts/switch.nuget.or.project.csx
|
||||
sync.sln.files.csx = scripts/sync.sln.files.csx
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{1129FE25-466B-4F4F-85FC-3752664245E1}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{3C6F049E-3EE8-4D66-9AFF-E8A369032487}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
ci.yml = .github/workflows/ci.yml
|
||||
EndProjectSection
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
ci.yml = .github/workflows/ci.yml
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{8E4C93BA-9493-4892-80C4-5E174C504829}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
code.quality.props = build/code.quality.props
|
||||
copy.pkg.xml.comment.files.targets = build/copy.pkg.xml.comment.files.targets
|
||||
minver.targets = build/minver.targets
|
||||
nuget.package.props = build/nuget.package.props
|
||||
prebuild.targets = build/prebuild.targets
|
||||
stylecop.analyzers.ruleset = build/stylecop.analyzers.ruleset
|
||||
EndProjectSection
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
code.quality.props = build/code.quality.props
|
||||
copy.pkg.xml.comment.files.targets = build/copy.pkg.xml.comment.files.targets
|
||||
minver.targets = build/minver.targets
|
||||
nuget.package.props = build/nuget.package.props
|
||||
prebuild.targets = build/prebuild.targets
|
||||
stylecop.analyzers.ruleset = build/stylecop.analyzers.ruleset
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NSExt", "src\backend\NSExt\NSExt.csproj", "{1E62C322-EE42-4699-A6F1-791C53EFA62D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NSExt.Tests", "src\backend\NSExt.Tests\NSExt.Tests.csproj", "{00604162-C444-478B-B773-3AB23C856CA7}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{1E62C322-EE42-4699-A6F1-791C53EFA62D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1E62C322-EE42-4699-A6F1-791C53EFA62D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1E62C322-EE42-4699-A6F1-791C53EFA62D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1E62C322-EE42-4699-A6F1-791C53EFA62D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{00604162-C444-478B-B773-3AB23C856CA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{00604162-C444-478B-B773-3AB23C856CA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{00604162-C444-478B-B773-3AB23C856CA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{00604162-C444-478B-B773-3AB23C856CA7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{4DAF9366-855F-46BB-AE4C-660C92FA0697} = {C84EB5A0-37AD-4B17-A51E-E36888C4441E}
|
||||
{3C6F049E-3EE8-4D66-9AFF-E8A369032487} = {1129FE25-466B-4F4F-85FC-3752664245E1}
|
||||
{1E62C322-EE42-4699-A6F1-791C53EFA62D} = {4DAF9366-855F-46BB-AE4C-660C92FA0697}
|
||||
{00604162-C444-478B-B773-3AB23C856CA7} = {4DAF9366-855F-46BB-AE4C-660C92FA0697}
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{1E62C322-EE42-4699-A6F1-791C53EFA62D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1E62C322-EE42-4699-A6F1-791C53EFA62D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1E62C322-EE42-4699-A6F1-791C53EFA62D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1E62C322-EE42-4699-A6F1-791C53EFA62D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{00604162-C444-478B-B773-3AB23C856CA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{00604162-C444-478B-B773-3AB23C856CA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{00604162-C444-478B-B773-3AB23C856CA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{00604162-C444-478B-B773-3AB23C856CA7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{4DAF9366-855F-46BB-AE4C-660C92FA0697} = {C84EB5A0-37AD-4B17-A51E-E36888C4441E}
|
||||
{3C6F049E-3EE8-4D66-9AFF-E8A369032487} = {1129FE25-466B-4F4F-85FC-3752664245E1}
|
||||
{1E62C322-EE42-4699-A6F1-791C53EFA62D} = {4DAF9366-855F-46BB-AE4C-660C92FA0697}
|
||||
{00604162-C444-478B-B773-3AB23C856CA7} = {4DAF9366-855F-46BB-AE4C-660C92FA0697}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
@ -78,6 +78,7 @@
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpUseContinuousIndentInsideBracesMigration/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002EMemberReordering_002EMigrations_002ECSharpFileLayoutPatternRemoveIsAttributeUpgrade/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EPredefinedNamingRulesToUserRulesUpgrade/@EntryIndexedValue">True</s:Boolean>
|
||||
|
||||
|
@ -15,15 +15,15 @@
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.10.48">
|
||||
<PackageReference Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.12.19">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Roslynator.Analyzers" Version="4.12.4">
|
||||
<PackageReference Include="Roslynator.Analyzers" Version="4.12.9">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="SonarAnalyzer.CSharp" Version="9.28.0.94264">
|
||||
<PackageReference Include="SonarAnalyzer.CSharp" Version="9.32.0.97167">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
|
@ -3,7 +3,7 @@
|
||||
"isRoot": true,
|
||||
"tools": {
|
||||
"dotnet-t4": {
|
||||
"version": "2.3.1",
|
||||
"version": "3.0.0",
|
||||
"commands": [
|
||||
"t4"
|
||||
]
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<clear/>
|
||||
<add key="nuget.cdn.azure.cn" value="https://nuget.cdn.azure.cn/v3/index.json"/>
|
||||
<add key="nuget.cdn.azure.cn" value="https://nuget.cdn.azure.cn/v3/index.json" />
|
||||
</packageSources>
|
||||
</configuration>
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"version": "2.2.0",
|
||||
"devDependencies": {
|
||||
"cz-git": "^1.7.1",
|
||||
"commitizen": "^4.3.0",
|
||||
"prettier": "^3.1.0",
|
||||
"cz-git": "^1.11.0",
|
||||
"commitizen": "^4.3.1",
|
||||
"prettier": "^3.3.3",
|
||||
"standard-version": "^9.5.0"
|
||||
},
|
||||
"config": {
|
||||
|
@ -1,6 +1,10 @@
|
||||
$branch = $( git branch --show-current )
|
||||
git add ../
|
||||
./code.clean.ps1
|
||||
$skipFormat = Read-Host "输入 n 跳过代码整理"
|
||||
if ($skipFormat -ne "n")
|
||||
{
|
||||
./code.clean.ps1
|
||||
}
|
||||
git add ../
|
||||
../node_modules/.bin/git-cz.ps1
|
||||
git pull
|
||||
|
@ -1,7 +1,7 @@
|
||||
cd ..
|
||||
$types = @{
|
||||
'1' = @('major', '主版本')
|
||||
'2' = @('minor', '此版本')
|
||||
'2' = @('minor', '次版本')
|
||||
'3' = @('patch', '修订版本')
|
||||
}
|
||||
$prefix = ''
|
||||
@ -10,19 +10,20 @@ while ($null -eq $types[$prefix])
|
||||
$prefix = Read-Host "请选择版本类型`n" $( & { param($i) $i | ForEach-Object { "$_ : $( $types[$_][0] )($( $types[$_][1] ))`n" } } $types.Keys | Sort-Object )
|
||||
}
|
||||
git checkout main
|
||||
git pull
|
||||
git branch -D release
|
||||
git checkout -b release
|
||||
./node_modules/.bin/standard-version -r $types[$prefix][0]
|
||||
cd ./scripts
|
||||
./code.clean.ps1
|
||||
git commit --amend --no-edit -a
|
||||
$tag = $(git describe --tags $(git rev-list --tags --max-count=1))
|
||||
$tag = $( git describe --tags $( git rev-list --tags --max-count = 1 ) )
|
||||
git tag -d $tag
|
||||
git tag $tag
|
||||
git push --tags origin release
|
||||
Start-Process -FilePath "https://github.com/nsnail/NSExt/compare/main...release"
|
||||
Write-Host "按『Enter』回到主分支,『Ctrl+C』退出"
|
||||
Write-Host "按『Enter』回到tk分支,『Ctrl+C』退出"
|
||||
Pause
|
||||
git checkout main
|
||||
git pull
|
||||
git branch -D release
|
||||
git branch -D release
|
||||
git branch -D tk
|
||||
git checkout -b tk
|
2
scripts/4.git.del.obsolete.tags.ps1
Normal file
2
scripts/4.git.del.obsolete.tags.ps1
Normal file
@ -0,0 +1,2 @@
|
||||
git push origin :refs/tags/$(git tag -l "*-*")
|
||||
git tag -d $(git tag -l "*-*")
|
15
scripts/find.unused.ln.csx
Normal file
15
scripts/find.unused.ln.csx
Normal file
@ -0,0 +1,15 @@
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
Console.WriteLine(string.Join(Environment.NewLine
|
||||
, Regex
|
||||
.Matches(File.ReadAllText(@"../assets/res/Ln.resx")
|
||||
, "data name=\"(.*?)\"")
|
||||
.Select(x => x.Groups[1].Value)
|
||||
.Where(x => !Directory
|
||||
.GetFiles(@"../src/backend/", "*.cs"
|
||||
, new EnumerationOptions {
|
||||
RecurseSubdirectories = true
|
||||
})
|
||||
.Select(File.ReadAllText)
|
||||
.Any(y => y.Contains(x)))));
|
||||
Console.ReadKey();
|
@ -1,6 +1,7 @@
|
||||
<#@ template language="C#" #>
|
||||
<#@ assembly name="System.Xml" #>
|
||||
<#@ output encoding="utf-8" extension="Designer.cs" #>
|
||||
<#@ import namespace="System.Xml" #>
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
@ -27,8 +28,8 @@ namespace NSExt.Languages;
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[System.Diagnostics.DebuggerNonUserCode]
|
||||
[System.Runtime.CompilerServices.CompilerGenerated]
|
||||
[DebuggerNonUserCode]
|
||||
[CompilerGenerated]
|
||||
public sealed class Ln
|
||||
{
|
||||
private static ResourceManager _resourceMan;
|
||||
@ -61,9 +62,9 @@ public sealed class Ln
|
||||
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
public static CultureInfo Culture { get; set; }
|
||||
<#
|
||||
var xml = new System.Xml.XmlDocument();
|
||||
var xml = new XmlDocument();
|
||||
xml.Load("../assets/res/Ln.resx");
|
||||
foreach (System.Xml.XmlNode data in xml.SelectNodes("//root/data")!)
|
||||
foreach (XmlNode data in xml.SelectNodes("//root/data")!)
|
||||
{
|
||||
#>
|
||||
/// <summary>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<#@ template language="C#" #>
|
||||
<#@ output encoding="utf-8" extension="resx" #>
|
||||
<#@ import namespace="System.IO" #>
|
||||
<#@ import namespace="System.Linq" #>
|
||||
<#@ import namespace="System.Text.RegularExpressions" #>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
|
||||
@ -25,15 +28,12 @@
|
||||
</value>
|
||||
</resheader>
|
||||
<#
|
||||
var regex = new System.Text.RegularExpressions.Regex(@"^\d", System.Text.RegularExpressions.RegexOptions.Compiled);
|
||||
foreach (var file in System.IO.Directory.GetFiles("../assets/res/", "*.ln"))
|
||||
var regex = new Regex(@"^\d", RegexOptions.Compiled);
|
||||
foreach (var line in Directory.GetFiles("../assets/res/", "*.ln").SelectMany(x => File.ReadLines(x)).Distinct())
|
||||
{
|
||||
foreach (var line in System.IO.File.ReadLines(file))
|
||||
{
|
||||
#>
|
||||
<data name="<#= regex.IsMatch(line) ? "_" : "" #><#= line #>" xml:space="preserve"><value><#= line #></value></data>
|
||||
<#
|
||||
}
|
||||
}
|
||||
#>
|
||||
</root>
|
@ -1,4 +1,4 @@
|
||||
#r "nuget: NSExt, 1.1.0"
|
||||
#r "nuget: NSExt, 2.2.0"
|
||||
using NSExt.Extensions;
|
||||
|
||||
Console.WriteLine("请输入原始名称(NSExt):");
|
||||
|
42
scripts/switch.nuget.or.project.csx
Normal file
42
scripts/switch.nuget.or.project.csx
Normal file
@ -0,0 +1,42 @@
|
||||
using System.Text.RegularExpressions;
|
||||
string input = string.Empty;
|
||||
while (!new[] { "1", "2" }.Contains(input))
|
||||
{
|
||||
Console.WriteLine("1.nuget 2.project");
|
||||
input = Console.ReadLine();
|
||||
}
|
||||
var slnFile = Directory.GetFiles(@"../", "*.sln").First();
|
||||
var csprojFiles = Directory.GetFiles(@"../src", "*.csproj", new EnumerationOptions { RecurseSubdirectories = true });
|
||||
var slnContent = File.ReadAllText(slnFile);
|
||||
|
||||
if (input == "1")
|
||||
{
|
||||
slnContent = Regex.Replace(slnContent, "\\nProject\\((.*)#refs", "\n##Project($1#refs");
|
||||
slnContent = Regex.Replace(slnContent, "\\nEndProject#refs", "\n##EndProject#refs");
|
||||
foreach (Match m in Regex.Matches(slnContent, "\"(\\{[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}\\})\"#refs"))
|
||||
{
|
||||
slnContent = slnContent.Replace($" {m.Groups[1].Value}.", $" ##{m.Groups[1].Value}.");
|
||||
}
|
||||
foreach (var csprojFile in csprojFiles)
|
||||
{
|
||||
var csprojContent = File.ReadAllText(csprojFile);
|
||||
csprojContent = Regex.Replace(csprojContent," <ProjectReference(.*)Label=\"refs\"(.*)>", " <!--<ProjectReference$1Label=\"refs\"$2>-->");
|
||||
csprojContent = Regex.Replace(csprojContent," <!--<PackageReference(.*)Label=\"refs\"(.*)>-->", " <PackageReference$1Label=\"refs\"$2>");
|
||||
File.WriteAllText(csprojFile, csprojContent);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
slnContent = Regex.Replace(slnContent, "##", "");
|
||||
foreach (var csprojFile in csprojFiles)
|
||||
{
|
||||
var csprojContent = File.ReadAllText(csprojFile);
|
||||
csprojContent = Regex.Replace(csprojContent," <!--<ProjectReference(.*)Label=\"refs\"(.*)>-->", " <ProjectReference$1Label=\"refs\"$2>");
|
||||
csprojContent = Regex.Replace(csprojContent," <PackageReference(.*)Label=\"refs\"(.*)>", " <!--<PackageReference$1Label=\"refs\"$2>-->");
|
||||
File.WriteAllText(csprojFile, csprojContent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Console.WriteLine(slnContent);
|
||||
File.WriteAllText(slnFile, slnContent);
|
@ -8,12 +8,12 @@ content = Regex.Replace(
|
||||
"Project\\(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\"\\) = \"meta\", \"meta\", \"{5198A03D-0CAC-4828-A807-34A693F73859}\"(?:.|\n)*?EndProject",
|
||||
$$"""
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "meta", "meta", "{5198A03D-0CAC-4828-A807-34A693F73859}"
|
||||
{{'\t'}}ProjectSection(SolutionItems) = preProject
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
{{string.Join('\n',
|
||||
Directory.GetFiles(@"../", "*").Where(x => !x.EndsWith(".sln") && !x.EndsWith(".user"))
|
||||
.Select(x=>$"\t\t{Path.GetFileName(x)} = {Path.GetFileName(x)}")
|
||||
.Select(x=>$" {Path.GetFileName(x)} = {Path.GetFileName(x)}")
|
||||
)}}
|
||||
{{'\t'}}EndProject
|
||||
EndProject
|
||||
"""
|
||||
);
|
||||
|
||||
@ -22,12 +22,12 @@ content = Regex.Replace(
|
||||
"Project\\(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\"\\) = \"workflows\", \"workflows\", \"{3C6F049E-3EE8-4D66-9AFF-E8A369032487}\"(?:.|\n)*?EndProject",
|
||||
$$"""
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{3C6F049E-3EE8-4D66-9AFF-E8A369032487}"
|
||||
{{'\t'}}ProjectSection(SolutionItems) = preProject
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
{{string.Join('\n',
|
||||
Directory.GetFiles(@"../.github/workflows", "*")
|
||||
.Select(x=>$"\t\t{Path.GetFileName(x)} = .github/workflows/{Path.GetFileName(x)}")
|
||||
.Select(x=>$" {Path.GetFileName(x)} = .github/workflows/{Path.GetFileName(x)}")
|
||||
)}}
|
||||
{{'\t'}}EndProject
|
||||
EndProject
|
||||
"""
|
||||
);
|
||||
|
||||
@ -36,12 +36,12 @@ content = Regex.Replace(
|
||||
"Project\\(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\"\\) = \"scripts\", \"scripts\", \"{BB0B25C9-0901-4923-913F-00F9A6B352A5}\"(?:.|\n)*?EndProject",
|
||||
$$"""
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{BB0B25C9-0901-4923-913F-00F9A6B352A5}"
|
||||
{{'\t'}}ProjectSection(SolutionItems) = preProject
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
{{string.Join('\n',
|
||||
Directory.GetFiles(@"../scripts", "*")
|
||||
.Select(x=>$"\t\t{Path.GetFileName(x)} = scripts/{Path.GetFileName(x)}")
|
||||
.Select(x=>$" {Path.GetFileName(x)} = scripts/{Path.GetFileName(x)}")
|
||||
)}}
|
||||
{{'\t'}}EndProject
|
||||
EndProject
|
||||
"""
|
||||
);
|
||||
|
||||
@ -50,12 +50,12 @@ content = Regex.Replace(
|
||||
"Project\\(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\"\\) = \"build\", \"build\", \"{8E4C93BA-9493-4892-80C4-5E174C504829}\"(?:.|\n)*?EndProject",
|
||||
$$"""
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{8E4C93BA-9493-4892-80C4-5E174C504829}"
|
||||
{{'\t'}}ProjectSection(SolutionItems) = preProject
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
{{string.Join('\n',
|
||||
Directory.GetFiles(@"../build", "*")
|
||||
.Select(x=>$"\t\t{Path.GetFileName(x)} = build/{Path.GetFileName(x)}")
|
||||
.Select(x=>$" {Path.GetFileName(x)} = build/{Path.GetFileName(x)}")
|
||||
)}}
|
||||
{{'\t'}}EndProject
|
||||
EndProject
|
||||
"""
|
||||
);
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
global using System;
|
||||
global using System.ComponentModel;
|
||||
global using System.Diagnostics;
|
||||
global using System.Globalization;
|
||||
global using System.Text;
|
||||
global using System.Text.RegularExpressions;
|
||||
|
@ -1,8 +1,8 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0"/>
|
||||
<PackageReference Include="xunit" Version="2.8.1"/>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.1">
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0"/>
|
||||
<PackageReference Include="xunit" Version="2.9.2"/>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="3.0.0-pre.49">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
|
@ -258,10 +258,13 @@ public static class StringExtensions
|
||||
#pragma warning disable CA5350
|
||||
using var hmacSha1 = new HMACSHA1(e.GetBytes(secret));
|
||||
#pragma warning restore CA5350
|
||||
|
||||
#if NET9_0_OR_GREATER
|
||||
return Convert.ToHexStringLower(hmacSha1.ComputeHash(e.GetBytes(me)));
|
||||
#else
|
||||
return BitConverter.ToString(hmacSha1.ComputeHash(e.GetBytes(me)))
|
||||
.Replace("-", string.Empty)
|
||||
.ToLower(CultureInfo.CurrentCulture);
|
||||
.Replace("-", string.Empty)
|
||||
.ToLower(CultureInfo.CurrentCulture);
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -405,10 +408,14 @@ public static class StringExtensions
|
||||
public static string Md5(this string me, Encoding e)
|
||||
{
|
||||
#pragma warning disable CA5351
|
||||
#if NET9_0_OR_GREATER
|
||||
return Convert.ToHexStringLower(MD5.HashData(e.GetBytes(me)));
|
||||
#else
|
||||
return BitConverter.ToString(MD5.HashData(e.GetBytes(me)))
|
||||
#pragma warning restore CA5351
|
||||
.Replace("-", string.Empty)
|
||||
.ToLower(CultureInfo.CurrentCulture);
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -490,10 +497,14 @@ public static class StringExtensions
|
||||
public static string Sha1(this string me, Encoding e)
|
||||
{
|
||||
#pragma warning disable CA5350
|
||||
#if NET9_0_OR_GREATER
|
||||
return Convert.ToHexStringLower(SHA1.HashData(e.GetBytes(me)));
|
||||
#else
|
||||
return BitConverter.ToString(SHA1.HashData(e.GetBytes(me)))
|
||||
#pragma warning restore CA5350
|
||||
.Replace("-", string.Empty)
|
||||
.ToLower(CultureInfo.CurrentCulture);
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -606,9 +617,13 @@ public static class StringExtensions
|
||||
#pragma warning disable CA5351
|
||||
using var md5Hmac = new HMACMD5(e.GetBytes(key));
|
||||
#pragma warning restore CA5351
|
||||
#if NET9_0_OR_GREATER
|
||||
return Convert.ToHexStringLower(md5Hmac.ComputeHash(e.GetBytes(me)));
|
||||
#else
|
||||
return BitConverter.ToString(md5Hmac.ComputeHash(e.GetBytes(me)))
|
||||
.Replace("-", string.Empty)
|
||||
.ToLower(CultureInfo.CurrentCulture);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#pragma warning restore CodeLinesAnalyzer
|
@ -7,7 +7,7 @@
|
||||
<Import Project="$(SolutionDir)/build/copy.pkg.xml.comment.files.targets"/>
|
||||
<Import Project="$(SolutionDir)/build/prebuild.targets"/>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0"/>
|
||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.0"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Update="*.json">
|
||||
|
Loading…
x
Reference in New Issue
Block a user