gpt4 book ai didi

java - 如何获取当前文件当前行的Git提交信息

转载 作者:行者123 更新时间:2023-12-02 04:50:38 26 4
gpt4 key购买 nike

如何获取当前文件当前行的Git提交信息,我想获取作者的用户名

我已经获取了当前文件和当前行号。

 @Override
public void actionPerformed(AnActionEvent e) {
final Editor editor = e.getRequiredData(CommonDataKeys.EDITOR);
final Document document = editor.getDocument();

FileDocumentManager fileDocumentManager = FileDocumentManager.getInstance();
VirtualFile currentFile = fileDocumentManager.getFile(document);


if (e.getProject() == null || currentFile == null) {
return;
}
final PsiFile psiFile = PsiManager.getInstance(e.getProject()).findFile(currentFile);
String path = psiFile.getVirtualFile().getPath();
path = path.replace(e.getProject().getBasePath(), "");
BookMarkXPersistentStateComponent service = BookMarkXPersistentStateComponent.getInstance();
String projectName = e.getProject().getName();
int currentLineNumber = editor.getCaretModel().getLogicalPosition().line;
service.addBookMark(new BookmarkXItemState(projectName, path, currentLineNumber, new Date()));
}

最佳答案

如果我正确理解了这个问题,那么您正在寻找注释(责备)信息。

如果您只需要单行的此信息,您可以通过运行自定义 git 命令(如 git log -n 1 -L <line-number>,<line-number>:<path-to-file>)直接从 git 获取它。 。请参阅git-log help了解详情。

要运行此命令,请使用 GitHandler 类。

您还可以使用 IntelliJ 的内置注释功能来获取此信息,但这需要首先加载整个文件的注释。要走这条路,请检查 com.intellij.openapi.vcs.annotate.AnnotationProvider 通过provder注释文件后,您可以使用 com.intellij.openapi.vcs.annotate.FileAnnotation.CurrentFileRevisionProvider#getRevision ,从中您可以得到 com.intellij.openapi.vcs.history.VcsFileRevision#getAuthor

此外,请查看 https://intellij-support.jetbrains.com/hc/en-us/community/posts/360004109859--VcsUtil-getVcsFor-return-null

关于java - 如何获取当前文件当前行的Git提交信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56445752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com