vscode `explorer.sortOrder` 默认对于哈希值的排序效果不佳,

t1rydlwq  于 5个月前  发布在  Vscode
关注(0)|答案(7)|浏览(74)

With this folder https://github.com/lunapaint/imagetestsuite/tree/main/png , it starts off alphabetical but gives up shortly after. It looks like the it's sorting by the number first such that 3, 20, 100 appear in the "correct" order. I suggest making one of the following changes:

  • Only use that rule when the file name excluding the extension is a number (not sure what cases are being covered)
  • Add a setting for actual alphabetical sorting
  • My preference: Sort alphabetical if the file name looks like a hash (/[0-9a-f]{7,32}/)

Have been hitting this a decent amount recently, instead of a quick find via visual check I need to type out the first part of the hash to filter the explorer.

ztigrdn8

ztigrdn81#

我已经找到了一个适合这个的:

这对你有用吗?

f3temu5u

f3temu5u2#

如果我理解正确,那么这个设置不会将aA视为相同。所以不,这不起作用,因为我不希望根据我正在做的事情不断切换我的资源管理器的排序选项。

f0brbegy

f0brbegy3#

我们正在使用 Intl.Collator 's 进行很多操作:
vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts
第684行到第701行的代码
| | switch(lexicographicOptions){ |
| | case'upper': |
| | compareFileNames=compareFileNamesUpper; |
| | compareFileExtensions=compareFileExtensionsUpper; |
| | break; |
| | case'lower': |
| | compareFileNames=compareFileNamesLower; |
| | compareFileExtensions=compareFileExtensionsLower; |
| | break; |
| | case'unicode': |
| | compareFileNames=compareFileNamesUnicode; |
| | compareFileExtensions=compareFileExtensionsUnicode; |
| | break; |
| | default: |
| | // 'default' |
| | compareFileNames=compareFileNamesDefault; |
| | compareFileExtensions=compareFileExtensionsDefault; |
| | } |
但是 unicode 只是内置的 < 运算符,不确定是否有 Collator 配置可以满足你的需求,我不想硬编码一些仅在英语中有效的东西。这可能只是不传递 numeric: true 的问题,但那样会破坏 a.1.txta.2.txt、... a.10.txt

j8ag8udp

j8ag8udp4#

可能在某个时候被 #27286 / #27759 覆盖。

x8goxv8g

x8goxv8g5#

它与#27759类似,并在一条评论中被提及(#27759(评论))。但我认为这个问题是独特的,因为它特别涉及到文件开头的特殊数字处理,而不是像那里提到的主要情况那样:
一个名为foo.ts的文件在foo_test.ts之前排序,但我们反过来排序
#27759更多地关注具有相同前缀的文件如何相对于彼此进行排序。

3pmvbmvn

3pmvbmvn6#

我可以添加一个不区分大小写的 unicode 变体。我认为这比为数字前缀设计自定义功能更可取。
此外,值得探讨一下非 numeric 排序器是否能在这里提供帮助。

bihw5rsg

bihw5rsg7#

@JacksonKearl不确定我是否想要一个不区分大小写的Unicode变体,我想要两者兼得;今天按照#27759中描述的修复进行排序,并对哈希值进行逻辑排序。我不熟悉这段代码,但似乎可以实现。

相关问题