29 个版本
0.8.2 | 2024 年 6 月 6 日 |
---|---|
0.8.1 | 2024 年 1 月 23 日 |
0.8.0 | 2023 年 12 月 8 日 |
0.7.0 | 2023 年 10 月 8 日 |
0.1.3 | 2020 年 8 月 9 日 |
#447 在 开发工具
每月 166 次下载
56KB
1.5K SLoC
README
其他版本(有一些不同的功能)
- code_it_later_ml ocaml 版本
- code-it-later clojure 版本
- code_it_later_hs haskell 版本
摘要
在源代码中标记可能出现问题或可以优化的地方。codeitlater 帮助您跟踪这些标记并在将来修复它们。
安装
cargo安装 code-it-later-rs
安装 Emacs 接口模式
我开发了 code-it-later-mode,它是我的 Emacs 的接口模式。
功能
- 获取源代码中的注释
- 根据不同的关键字获取注释
- 获取目录或文件特殊路径中的注释
- 可以扩展到其他语言
当前支持的语言
- rs
- go
- lisp
- py
- hs
- el
- clj
- js
如果您想扩展其他语言,请查看 展开 json 文件
使用方法
像往常一样编写代码。您要在其中留下标记的注释行,请在注释符号后留有 :=
符号。
然后在终端运行 codeitlater
命令,以获取这些面包屑。
例如
Golang:
// /user/src/main.go
// test codeitlater
//:= this line can be read by codeitlater
//:= MARK: you can left keyword to marked comment line
/*:= mutil lines comments
*/
然后在代码根目录下运行 codeitlater
您将得到
|-- /user/src/main.go
|-- Line 3: this line can be read by codeitlater
|-- Line 4: MARK: you can left keyword to marked comment line
|-- Line 5: mutil lines comments
Python:
# /src/main.py
# this line wont be read
#:= this line for codeitlater
print("aaa") ###:= this line can be read again
运行 codeitlater /path/to/this_py.py
。
您将得到
|-- /src/main.py
|-- Line 3: this line for codeitlater"
|-- Line 4: this line can be read again"
指定文件类型
codeitlater -f clj
您将仅从 clojure 获取结果。
codeitlater -f clj -f py
然后 clojure 和 python 的结果都会返回。
codeitlater -f clj -f py /path/to/file /path/to/dir
多行
当一行以 ...
结尾时,则下一行将添加到此面包屑。您也可以为此创建尾链。
例如
//:= line1...
//:= , and line2...
//:= line3 with line2...
//:= line4 is diffrent...
//:= with line5
//:= line6
将给出
|-- Line 1: line1 , and line2 line3 with line2...
|-- Line 4: line4 is diffrent with line5
|-- Line 6: line6
过滤关键字
关键词格式为关键词:
,后面跟一个空格。
过滤关键词(使用 -k 作为关键词标志,通过 -h 查看更多标志)
codeitlater-kMARK
您将得到
|-- /user/src/main.go
|-- Line 4: MARK: you can left keyword to marked comment line
与文件类型相同的格式,如果您想同时获取两个关键词
codeitlater-k待办事项 --关键词MARK
注意:如果关键词和多行混合使用,多行功能具有更高的优先级。
示例
//:= TODO: aaaa...
//:= bbb...
//:= MARK: ccc
同时显示 codeitlater
和 codeitlater -k TODO
|-- 第1行:TODO:aaaa bbb MARK:ccc
codeitlater -k MARK
将不会显示任何内容。
使用关键字忽略
这是我工作中使用的特殊功能之一。例如
//:= !JIRA-123: hello world
//:= line2
第一行 "hello world" 将被忽略,因为它以 '!'
开头。要显示此行,请给出关键词 JIRA-123
,如 codeitlater -k JIRA-123
或者如果想要显示所有内容,可以使用 --show-ignored
真值,如 codeitlater --show-ignored true
。
排除某些文件夹
codeitlater -x vendor
将忽略 vendor 目录下的所有文件(递归)。
展开 json 文件
检查 tests/test.json
,如果您运行 codeitlater -j ./tests/test.json
,codeitlater 字典中的 "rs" 将被 test.json
中的新值覆盖。其他语言保持不变。
本地参数
codeitlater
将查找 {$PWD}/.codeitlater
文件以预加载参数。如果命令行中给出了任何参数,并且这些参数也设置在 .codeitlater
文件中,则将被命令行参数覆盖(除外 -x 忽略目录,忽略目录配置位于 .codeitlater
文件和命令行中给出的将合并在一起)。
删除面包屑
codeitlater -D target
将清理目标文件夹中的所有面包屑。删除将给出提示交互,具有 y/n/s/i
选项。 y
表示删除它刚显示的面包屑/面包屑; n
表示忽略此; s
表示 显示
,重新打印它; i
进入交互模式,逐个显示面包屑或面包屑。
您可以使用 codeitlater -D -k TODO
删除特殊关键词。通常,-D
在正常的 codeitlater
工作流程之后处理。
恢复面包屑
与删除功能的提示类似,但此功能将代码中留下的面包屑恢复到普通注释。
//:= here
将恢复为
// here
在清理面包屑后运行格式化
清理文件中的某些面包屑后,您可能需要在之后对其进行格式化。您可以使用 --fmt
选项让 codeitlater
在清理后运行指定的命令。
例如
codeitlater -D --fmt "go fmt" .
将删除您的面包屑并运行 go fmt
。在 --fmt
后面必须指定独立的命令。
和其他所有选项一样,您可以在本地目录中添加它: {$PWD}/.codeitlater
。
输出到不同格式的文件
-O/--output-format
可以以特定格式输出面包屑。
支持格式
- json
- list
示例
codeitlater -O json .
依赖项
~9–23MB
~292K SLoC