作者想要給Linux用zip…我想.tar.xz
嗯,好的
好像是 github releases source 塞哪些東西沒法控制
作者想要給Linux用zip…我想.tar.xz
嗯,好的
好像是 github releases source 塞哪些東西沒法控制
github 不支持就没辙了。
我写了一段简单的 homebrew formula,目前只编译 master 版。release 版的 third_party 还没想好怎么处理,理清楚了再加入。
以后有条件可以提供二进制下载,虽然 cquery 编译已经够简单了,但毕竟还是需要花费一些时间的。
今天更新了之后,一样的错。
我在看 string_view.hpp 时 遇到的问题:
FixIt: ...
这个 lsp-ui-sideline-code-action 总是比可视的行多一个字符,导致要换行
我不知道这是 lsp-ui 的问题,还是 cquery 的问题,还是其他什么的
还有,我觉得错误就是这个, std → stx
这应该是 lsp-ui 的问题,这里显示的是 flycheck 的信息,我之前提过一个类似的 issue。
默认checker太烦了。我不得已 (setq-default flycheck-disabled-checkers '(c/c++-clang c/c++-gcc)) ;; in flycheck.el
了,
;; Disable lsp-flycheck.el in favor of lsp-ui-flycheck.el
(setq lsp-enable-flycheck nil)
lsp-ui-flycheck 也卡 (setq lsp-ui-flycheck-enable nil)
T_T 所以我都没用
string_view 可能是Mac OS X Xcode里不用 -std=c++17
也会被其他头文件包含,已经解决了
换了这种写法
#if __cplusplus >= 201703L || defined(__has_include) && __has_include(<string_view>)
#include <string_view>
#else
#define STX_NAMESPACE_NAME std
#include "string_view.hpp"
#endif
已经解决了
放到 wiki 没问题,我刚刚把 release 版的编译也加上了:cquery.rb
最好把编译参数也加上,但是我看[wiki/build](Home · jacobdufault/cquery Wiki · GitHub) 几组参数不好归纳:
--variant=release/debug/asan
--variant=system --use-system-clang --llvm-config=llvm-config-3.9
--variant=clang5 --bundled-clang=5.0.1
初步的想法是给 homebrew formula 加三个参数:
--with-variant={variant}
选项 release/debug/asan
,对应第一组--with-llvm-config=llvm-config-{ver}
展开为 --variant=system --use-system-clang --llvm-config=llvm-config-{ver}
对应第二组--with-bundled-clang={maj.min.patch}
展开为 --variant=clang{maj} --bundled-clang={maj.min.patch}
对应第三组但是 2.3. 都必须说明将覆盖 1. 但是目前都没见过哪个 formula 把参数设置成相互排斥的,基本上都是叠加式的。
謝謝指出。我之前也想廢棄 --use-system-clang 的,但有人反對。我現在還是堅定按照自己想法簡化邏輯吧
--bundled-clang=5.0.1
是默認的,如果 ./waf configure
不帶選項則是使用 bunblded clang+llvm 5.0.1--llvm-config=llvm-config
可以使用系統 clang+llvm--use-system-clang
已經是廢棄選項,不起作用了因此,--llvm-config=llvm-config
會覆蓋 --bundled-clang=5.0.1
已經git push
Environment variable CXX or --check-cxx-compiler=clang++ to choose the compiler. Usually not needed.
--variant=release: what CXXFLAGS is used to build cquery source files
--bundled-clang=5.0.1: bundled clang version
--llvm-config=llvm-config: overrides --bundle-clang. Use system clang. --clang-prefix is useful if the clang path is different from that of llvm libs (e.g. Nix)
git submodule update --init
GitHub Releases 上的 “Source code” tarball 是没法 git submodule update --init 的。
只能让他们 Home · jacobdufault/cquery Wiki · GitHub
awk -vRS='[' -F'\n' '$2{gsub("url = ","",$3); gsub("path = ","",$2); print "git clone "$3 $2}' .gitmodules
列出 git clone 命令手动执行了
楼主你好,看了你的帖子,入坑cquery,我设置了几个启动选项,但是都没有生效,你看看参数对吗?
我在看chromium网络部分的源码,compile_commands.json放在src目录,我想只索引src/net和src/base两个子目录,但是从日志来看,其他目录也被扫描。现在每次打开emacs,cquery都占用很多CPU资源,好像一直在做索引。
查找问题期间,我启用了(setq lsp-print-io t),一直报textDocument/publishDiagnostics
,然后我在启动选项加了:diagnosticsOnParse :json-false
,没有效果,还是一直报。
(setq cquery-extra-init-params '(:diagnosticsOnParse :json-false
:index (:whitelist ("net/*" "base/*")
:blacklist (".*")
:logSkippedPaths t
:enabled t)))
现在 config->index.whitelist config->index.blacklist
的行为是只影响启动时索引的文件,新打开的文件会 textDocument/didOpen
也会创建索引请求,不受 whitelist/blacklist 限制。net/*
/base/*
可以写成 "net/"
"base/"
,这是用 ECMAScript m.regex = std::regex( search, std::regex_constants::ECMAScript | std::regex_constants::icase | std::regex_constants::optimize // std::regex_constants::nosubs );
匹配的
但是从日志来看,其他目录也被扫描。
我阅读llvm也发现这个问题。之前 scturtle 有个修改,如果文件parse失败,每次打开还会继续索引。
另外,如果你的 build 目录在项目中的化,可能受 compile_commands.json project root 判断逻辑影响 [Discussion] project root detection logic · Issue #293 · emacs-lsp/lsp-mode · GitHub