今天上午我实在无聊,突然想起Emacs的clang补全如果单词在真tab后面就解析出错实在让我不爽
看过内核代码后我就习惯用8宽度的真实tab缩进,为了能用clang补全c代码我一直忍受着替换成
空格缩进,今天我忍无可忍了。
看了下代码找到了问题的原因。
如下-------------------
(defsubst ac-clang-build-location (pos)
(save-excursion
(goto-char pos)
(setq fp pos) ;;新增
(beginning-of-line nil) ;;新增
(setq tp (point)) ;;新增
(format "%s:%d:%d" buffer-file-name (line-number-at-pos)
(1+ (- fp tp)) ;;新增
;;BUG!clang是以字符数来确定位置,tab是以一个字符计数。
;;但(current-column)函数是列数,tab是它的宽度占位计数,这样以真tab缩进的代码在clang
;;的补全位置参数中将是一个错误的位置,导致不能补全。
;; (1+ (current-column)) bug代码
)))
我终于可以用8真tab缩进c代码了!
修正Emacs clang补全插件tab计算bug
-
- 帖子: 490
- 注册时间: 2009-06-20 23:53