之前缺少一些功能,抽空试试新版本corfu
Update:corfu只支持27+啊
之前缺少一些功能,抽空试试新版本corfu
Update:corfu只支持27+啊
不可能所有文件类型都支持的。不认识的先统一用某图标替代,等上游合并就好了。统一协调比啥都重要。
另外,elisp 不是有图标吗?nerdfont 收 PR这么严格的吗还是?
看这里:[Request] icons for Emacs, elisp and orgmode · Issue #342 · ryanoasis/nerd-fonts (github.com)
维护者可能是VI党吧
这 issue 提的地方不对吧。
nerdfont 是其它 devicons、awesome 等一堆字体的集合,那么多上游,有一个合并就成了。
那该提哪里呢?这是个悖论呀
nerdfont 官网列了图标来源的,看看哪个好进。
放哪里的问题是由nerd font 维护者决定的,理论上放上游字体或者新加字体都行,但是可能会有冲突。大家给出了几种方案都没有通过,这个在讨论中有的。原始issue并不是我提的,不知道 @twlz0ne 大佬怎么看。
我的理解是 nerdfont 是程序化批量添加图标的,只为某些图标开特例徒增维护成本是不行的。所以应该向 devicon 等这些提 PR。至于冲突,指的是多个图标集含有相似的图标?这是 nerdfont 维护者考虑的事情,而且你这现状没有冲突。
刚看了下 nerdfont repo,明白你说的冲突是指 code points range,确实也可以在 nerdfont 提 PR。
对的,也有用户提出能不能增加file-icons,至今也没有结论。
找了一个最近已合并的 PR,基本把步骤写清楚了。基本上是设计方面的事情,和代码无关。依样画葫芦试试看?
糊了一个 corfu 适用的 nerd-icons 的 margin formatter。相当于极简的 kind-icons,方便魔改。
;; ref to lsp-completion--item-kind
(defvar +corfu-icons--icons
`((text . ,"nf-cod-text_size")
(method . ,"nf-cod-symbol_method")
(function . ,"nf-cod-symbol_method")
(constructor . ,"nf-cod-symbol_method")
(field . ,"nf-cod-symbol_field")
(variable . ,"nf-cod-symbol_variable")
(class . ,"nf-cod-symbol_class")
(interface . ,"nf-cod-symbol_interface")
(module . ,"nf-cod-symbol_namespace")
(property . ,"nf-cod-symbol_property")
(enum . ,"nf-cod-symbol_enum")
(keyword . ,"nf-cod-symbol_keyword")
(snippet . ,"nf-cod-symbol_snippet")
(color . ,"nf-cod-symbol_color")
(file . ,"nf-cod-symbol_file")
(reference . ,"nf-cod-references")
(folder . ,"nf-cod-folder")
(dir . ,"nf-cod-symbol_file")
(enum-member . ,"nf-cod-symbol_enum_member")
(constant . ,"nf-cod-symbol_constant")
(struct . ,"nf-cod-symbol_structure")
(event . ,"nf-cod-symbol_event")
(operator . ,"nf-cod-symbol_operator")
(type-parameter . ,"nf-cod-symbol_parameter")))
(defvar +corfu-icons--cache nil)
;; poor man's kind-icons
(defun +corfu-icons-margin-formatter (_)
(when-let ((kind-func (plist-get completion-extra-properties :company-kind)))
(lambda (cand)
(let ((kind (funcall kind-func cand)))
(or (alist-get kind +corfu-icons--cache)
(let* ((name (alist-get kind +corfu-icons--icons "nf-cod-code"))
(icon (nerd-icons-codicon name))
(disp (propertize (concat icon " ") 'face 'shadow)))
(setf (alist-get kind +corfu-icons--cache) disp)
disp))))))