#line-comment #comments #source #flags #command-line #mark #track

nightly bin+lib code-it-later-rs

过滤代码注释中遗留的面包屑,以提醒您之前的位置

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开发工具

Download history 165/week @ 2024-06-01 17/week @ 2024-06-08 1/week @ 2024-06-15 21/week @ 2024-07-20 145/week @ 2024-07-27

每月 166 次下载

MIT 许可证

56KB
1.5K SLoC

README

Crates.io

其他版本(有一些不同的功能)

摘要

在源代码中标记可能出现问题或可以优化的地方。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

同时显示 codeitlatercodeitlater -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