Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e9cf488b0d | ||
![]() |
57fdc250ce | ||
![]() |
8beb9e1996 | ||
![]() |
5bc5ea17c7 | ||
![]() |
bd6e249304 | ||
![]() |
6f5de33bff | ||
![]() |
7c4974c36a | ||
![]() |
a16edc16ed | ||
![]() |
6e263fa123 | ||
![]() |
b92e0de242 | ||
![]() |
890388ea5e |
41
.editorconfig
Normal file
41
.editorconfig
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# top-most EditorConfig file
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
# Visual Studio Spell checker configs (https://learn.microsoft.com/en-us/visualstudio/ide/text-spell-checker?view=vs-2022#how-to-customize-the-spell-checker)
|
||||||
|
spelling_exclusion_path = ./exclusion.dic
|
||||||
|
|
||||||
|
[*.cs]
|
||||||
|
indent_size = 4
|
||||||
|
charset = utf-8-bom
|
||||||
|
end_of_line = unset
|
||||||
|
|
||||||
|
# Solution files
|
||||||
|
[*.{sln,slnx}]
|
||||||
|
end_of_line = unset
|
||||||
|
|
||||||
|
# MSBuild project files
|
||||||
|
[*.{csproj,props,targets}]
|
||||||
|
end_of_line = unset
|
||||||
|
|
||||||
|
# Xml config files
|
||||||
|
[*.{ruleset,config,nuspec,resx,runsettings,DotSettings}]
|
||||||
|
end_of_line = unset
|
||||||
|
|
||||||
|
[*{_AssemblyInfo.cs,.notsupported.cs}]
|
||||||
|
generated_code = true
|
||||||
|
|
||||||
|
# C# code style settings
|
||||||
|
[*.{cs}]
|
||||||
|
dotnet_diagnostic.IDE0044.severity = none # IDE0044: Make field readonly
|
||||||
|
|
||||||
|
# https://stackoverflow.com/questions/79195382/how-to-disable-fading-unused-methods-in-visual-studio-2022-17-12-0
|
||||||
|
dotnet_diagnostic.IDE0051.severity = none # IDE0051: Remove unused private member
|
||||||
|
dotnet_diagnostic.IDE0130.severity = none # IDE0130: Namespace does not match folder structure
|
5
.github/dependabot.yaml
vendored
5
.github/dependabot.yaml
vendored
@ -5,3 +5,8 @@ updates:
|
|||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly" # Check for updates to GitHub Actions every week
|
interval: "weekly" # Check for updates to GitHub Actions every week
|
||||||
|
ignore:
|
||||||
|
# I just want update action when major/minor version is updated. patch updates are too noisy.
|
||||||
|
- dependency-name: '*'
|
||||||
|
update-types:
|
||||||
|
- version-update:semver-patch
|
||||||
|
@ -10,10 +10,12 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-dotnet:
|
build-dotnet:
|
||||||
runs-on: ubuntu-latest
|
permissions:
|
||||||
|
contents: read
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: Cysharp/Actions/.github/actions/checkout@main
|
||||||
- uses: Cysharp/Actions/.github/actions/setup-dotnet@main
|
- uses: Cysharp/Actions/.github/actions/setup-dotnet@main
|
||||||
- run: dotnet build -c Debug
|
- run: dotnet build -c Debug
|
||||||
- run: dotnet test -c Debug --no-build
|
- run: dotnet test -c Debug --no-build
|
@ -14,10 +14,12 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-dotnet:
|
build-dotnet:
|
||||||
runs-on: ubuntu-latest
|
permissions:
|
||||||
|
contents: read
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: Cysharp/Actions/.github/actions/checkout@main
|
||||||
- uses: Cysharp/Actions/.github/actions/setup-dotnet@main
|
- uses: Cysharp/Actions/.github/actions/setup-dotnet@main
|
||||||
# build and pack
|
# build and pack
|
||||||
- run: dotnet build -c Release -p:Version=${{ inputs.tag }}
|
- run: dotnet build -c Release -p:Version=${{ inputs.tag }}
|
||||||
@ -33,6 +35,8 @@ jobs:
|
|||||||
# release
|
# release
|
||||||
create-release:
|
create-release:
|
||||||
needs: [build-dotnet]
|
needs: [build-dotnet]
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
uses: Cysharp/Actions/.github/workflows/create-release.yaml@main
|
uses: Cysharp/Actions/.github/workflows/create-release.yaml@main
|
||||||
with:
|
with:
|
||||||
commit-id: ${{ github.sha }}
|
commit-id: ${{ github.sha }}
|
@ -7,4 +7,6 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
detect:
|
detect:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
uses: Cysharp/Actions/.github/workflows/prevent-github-change.yaml@main
|
uses: Cysharp/Actions/.github/workflows/prevent-github-change.yaml@main
|
@ -7,4 +7,8 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
stale:
|
stale:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pull-requests: write
|
||||||
|
issues: write
|
||||||
uses: Cysharp/Actions/.github/workflows/stale-issue.yaml@main
|
uses: Cysharp/Actions/.github/workflows/stale-issue.yaml@main
|
@ -56,7 +56,6 @@ Observable<CollectionRemoveEvent<T>> IObservableCollection<T>.ObserveRemove()
|
|||||||
Observable<CollectionReplaceEvent<T>> IObservableCollection<T>.ObserveReplace()
|
Observable<CollectionReplaceEvent<T>> IObservableCollection<T>.ObserveReplace()
|
||||||
Observable<CollectionMoveEvent<T>> IObservableCollection<T>.ObserveMove()
|
Observable<CollectionMoveEvent<T>> IObservableCollection<T>.ObserveMove()
|
||||||
Observable<CollectionResetEvent<T>> IObservableCollection<T>.ObserveReset()
|
Observable<CollectionResetEvent<T>> IObservableCollection<T>.ObserveReset()
|
||||||
Observable<CollectionResetEvent<T>> IObservableCollection<T>.ObserveReset()
|
|
||||||
Observable<Unit> IObservableCollection<T>.ObserveClear<T>()
|
Observable<Unit> IObservableCollection<T>.ObserveClear<T>()
|
||||||
Observable<(int Index, int Count)> IObservableCollection<T>.ObserveReverse<T>()
|
Observable<(int Index, int Count)> IObservableCollection<T>.ObserveReverse<T>()
|
||||||
Observable<(int Index, int Count, IComparer<T>? Comparer)> IObservableCollection<T>.ObserveSort<T>()
|
Observable<(int Index, int Count, IComparer<T>? Comparer)> IObservableCollection<T>.ObserveSort<T>()
|
||||||
@ -487,7 +486,7 @@ ObservableCollections provides these collections.
|
|||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
class ObservableList<T> : IList<T>, IReadOnlyList<T>, IObservableCollection<T>, IReadOnlyObservableList<T>
|
class ObservableList<T> : IList<T>, IReadOnlyList<T>, IObservableCollection<T>, IReadOnlyObservableList<T>
|
||||||
class ObservableDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IReadOnlyDictionary<TKey, TValue>, IObservableCollection<KeyValuePair<TKey, TValue>> where TKey : notnull
|
class ObservableDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IReadOnlyDictionary<TKey, TValue>, IObservableCollection<KeyValuePair<TKey, TValue>>, IReadOnlyObservableDictionary<TKey, TValue> where TKey : notnull
|
||||||
class ObservableHashSet<T> : IReadOnlySet<T>, IReadOnlyCollection<T>, IObservableCollection<T> where T : notnull
|
class ObservableHashSet<T> : IReadOnlySet<T>, IReadOnlyCollection<T>, IObservableCollection<T> where T : notnull
|
||||||
class ObservableQueue<T> : IReadOnlyCollection<T>, IObservableCollection<T>
|
class ObservableQueue<T> : IReadOnlyCollection<T>, IObservableCollection<T>
|
||||||
class ObservableStack<T> : IReadOnlyCollection<T>, IObservableCollection<T>
|
class ObservableStack<T> : IReadOnlyCollection<T>, IObservableCollection<T>
|
||||||
@ -684,7 +683,7 @@ public interface ISynchronizedViewList<out TView> : IReadOnlyList<TView>, IDispo
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Obsolete for public use
|
// Obsolete for public use
|
||||||
public interface INotifyCollectionChangedSynchronizedViewList<out TView> : ISynchronizedViewList<TView>, INotifyCollectionChanged, INotifyPropertyChanged
|
public interface INotifyCollectionChangedSynchronizedViewList<TView> : IList<TView>, IList, ISynchronizedViewList<TView>, INotifyCollectionChanged, INotifyPropertyChanged
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,10 +167,12 @@ sealed class ObservableCollectionChanged<T>(IObservableCollection<T> collection,
|
|||||||
eventArgs.Action,
|
eventArgs.Action,
|
||||||
item,
|
item,
|
||||||
eventArgs.OldItem,
|
eventArgs.OldItem,
|
||||||
i++,
|
newStartingIndex: i,
|
||||||
eventArgs.OldStartingIndex,
|
eventArgs.OldStartingIndex,
|
||||||
eventArgs.SortOperation);
|
eventArgs.SortOperation);
|
||||||
|
|
||||||
|
if (eventArgs.NewStartingIndex != -1) i++;
|
||||||
|
|
||||||
observer.OnNext(newArgs);
|
observer.OnNext(newArgs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -166,7 +166,7 @@ namespace ObservableCollections
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool TryPeek([MaybeNullWhen(false)] T result)
|
public bool TryPeek([MaybeNullWhen(false)] out T result)
|
||||||
{
|
{
|
||||||
lock (SyncRoot)
|
lock (SyncRoot)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user