- it's unnecessary to implement `IEnumerable` interface
- we should check `IsIntersecting` before creating `InlineElement` to avoid unnecessary works suck as running `git cat-file -t <hash>`
- sort whold list after all elements have been added to avoid unnecessary memmove in `Insert`
Signed-off-by: leo <longshuang@msn.cn>
Instead of checking intersections of inline elements yourself before adding an inline element, the new class `InlineElementCollector` prevents intersections internally.
Additionally the inline elements are sorted by the new class, so it's no longer necessary to do this after adding the inline elements.
- move issue tracker and commit hash links parsing to view models
- parsing links async
- make sure matched hash is a valid commit oid
- disable `CHILDREN` row in submodule info panel
Signed-off-by: leo <longshuang@msn.cn>
* remove unnecessary namespace using
* do NOT set tooltip currently, because CommitDetail.GetParent may cause UI lags and the tooltip DataTemplate is not provided.
* add translations for zh_CN and zh_TW
Signed-off-by: leo <longshuang@msn.cn>
* feat: context menu for a commit in commit message
When a commit message happens to contain a commit link and the user elects to right-click it, instead of navigating them to the commit, present a menu with options to navigate to it or to copy SHA.
* feat: show commit tooltip as well
`_lastHover` in the `if` is also swapped for `match`for consistency with the block body