source insight 的开源替代

source insight 的开源替代——sourcetrail,开源地址:https://github.com/CoatiSoftware/Sourcetrail

Sourcetrail 是一个交互式源代码浏览器,它通过为代码编制索引并收集有关其结构的数据来简化现有源代码中的导航。然后,Sourcetrail 提供了一个简单的界面,该界面由三个交互式视图组成,每个视图在帮助您获取所需信息方面都发挥着关键作用:

Sourcetrail 概念

  • 搜索:使用搜索字段在源代码中快速查找和选择索引符号。自动完成框将立即提供整个代码库所有匹配结果的概览。
  • 图:该图显示源代码的结构。它专注于当前选定的元件,并直接显示其他元件的所有传入和传出依赖项。
  • 法典:Code (代码) 视图在代码片段列表中显示当前所选元件的所有源位置。单击其他源位置可以更改选择并更深入地挖掘。

注意:Sourcetrail 目前支持 C/C++、Java 和 Python 语言。因此,大部分 UI 设计都基于这些语言,并且可能会在支持其他语言后立即更改。有关更多信息,请查看支持的语言。

支持的语言

C

C 支持由 Clang 11.0.0 提供支持。对于加载 C 代码时遇到的问题,请查看 Clang 语言兼容性或在我们的错误跟踪器中报告错误。

C++

C++ 支持由 Clang 11.0.0 提供支持。有关更多信息,请访问 Clang C++ 状态。对于加载 C++ 代码时遇到的问题,请查看 Clang 语言兼容性或在我们的错误跟踪器中报告错误。

爪哇岛

Sourcetrail 包括对 Java 12 及更低版本的支持,它由 Eclipse JDT 提供支持。如果您在 Java 项目中使用 Sourcetrail 时遇到任何问题,请在我们的错误跟踪器中提供一个最小示例来告知我们。

Sourcetrail 包括对 Python 2 和 Python 3 的支持,后者由我们的开源 SourcetrailPythonIndexer 提供支持。如果您在 Python 项目上使用 Sourcetrail 时遇到任何问题,请在我们的 bug 跟踪器中提供一个最小示例来告知我们。

开始

这个简短的介绍将简要指导您完成 Sourcetrail 的项目设置和用户界面。项目符号列表将为您提供下一步要执行的步骤:

启动 Sourcetrail

成功下载 Sourcetrail 后,您就可以运行该应用程序了。有关安装的帮助,请访问安装部分。

任务:

  • 启动 Sourcetrail。

启动 Sourcetrail 后,您将看到 Start 窗口。在这里,您可以创建自己的项目或选择预先索引的项目。

任务:

  • 单击 New Project 以创建新项目。
  • 或从 Recent Projects (最近的项目) 中选择一个 (例如: TicTacToe) 并继续 UI Intro (UI 介绍)

启动窗口

创建新项目

创建新的 Sourcetrail 项目时,您将使用 Project Setup Wizard。此向导将设置过程拆分为几个后续步骤。根据项目的结构和使用的构建系统,项目设置有不同的类型。选择正确的设置方法很重要,并且可以使设置过程变得更加容易。

任务:

  • 为您的项目指定 Name (名称) 并选择 Sourcetrail 项目的 Location (位置) 作为 Sourcetrail 项目所在的位置。
  • 单击 Add Source Group 将源文件添加到项目中。

项目设置向导启动

添加源组

Sourcetrail 项目由多个 Source Group 组成。每个 Source Group 都使用特定语言、一组文件和所有配置来为这些文件编制索引。每种支持的编程语言都有不同类型的 Source Group。此外,对于大多数项目来说,创建单个 Source Group 就足够了。

滚动浏览图像以获取有关此设置的详细说明。

任务:

  • 选择您选择的 Source Group 设置类型,并在创建项目后立即返回此处。

Project Setup Wizard 源组类型

C/C++ 的源组设置

C和C++的源组设置类型相同。

您在使用 CMake、Make 还是 Qt Creator 吗?

如果您使用 CMake 或 Make 作为构建环境,则可以将 clang JSON 编译数据库导出为文件。Compilation Database 包含构建项目所需的所有信息,例如源文件、包含路径和编译器标志。拥有编译数据库使 Sourcetrail 中的项目设置变得更加容易。如果可能,我们建议使用此方法。compile_commands.json

导出编译数据库:

  • 通过定义标志从 CMake 开始。(不支持 Visual Studio CMake 生成器)CMAKE_EXPORT_COMPILE_COMMANDS
  • 对于 Make projects (创建项目),请使用 Bear。熊掌记在模拟构建过程中生成文件。熊掌记已在 FreeBSD、GNU/Linux 和 OS X 上进行了测试。compile_commands.json
  • 从 Qt Creator 4.8 版本开始,从“构建”菜单中选择“生成编译数据库”。

如果您成功导出了文件,请继续从 Compilation Database 创建 Source Group,并在创建完项目后返回。compile_commands.json

项目设置向导 启动 CDB

您是否在使用 Visual Studio?

如果您使用的是 Visual Studio,则可以继续从 Visual Studio 创建源组,并使用我们的 Visual Studio 插件导出编译数据库。

项目设置向导启动 VS

创建 Empty

如果以上选项都不适用于您的项目,请继续创建空的 C/C++ 源组,并在创建项目后返回此处。

Project Setup Wizard 源组类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/439638.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux的内存管理】

为什么需要内存管理 分段和分页内存分段内存分页 分页情况下,虚拟内存如何映射到物理地址页表原理多级页表 TLB快表段页式内存管理需要为什么进程地址空间Linux的进程虚拟地址空间管理进程地址空间如何分配虚拟内存虚拟内存的管理程序编译后的二进制文件如何映射到虚…

论文笔记:微表情欺骗检测

整理了AAAI2018 Deception Detection in Videos 论文的阅读笔记 背景模型实验可视化 背景 欺骗在我们的日常生活中很常见。一些谎言是无害的,而另一些谎言可能会产生严重的后果。例如,在法庭上撒谎可能会影响司法公正,让有罪的被告逍遥法外。…

TIM(Timer)定时器的原理

一、介绍 硬件定时器的工作原理基于时钟信号源提供稳定的时钟信号作为计时器的基准。计数器从预设值开始计数,每当时钟信号到达时计数器递增。当计数器达到预设值时,定时器会触发一个中断信号通知中断控制器处理相应的中断服务程序。在中断服务程序中&a…

启动redis

1. 进入root的状态,sudo -i 2. 通过sudo find /etc/redis/ -name "redis.conf"找到redis.conf的路径 3. 切换到/etc/redis目录下,开启redis服务 4. ps aux | grep redis命令查看按当前redis进程,发现已经服务已经开启 5.关闭服务…

【Linux】进程控制(创建、终止、等待、替换)

文章目录 1. 进程创建2. 进程终止3. 进程等待4. 进程程序替换4.1 认识进程替换4.2 认识全部接口 1. 进程创建 如何创建进程我们已经在之前学习过了,无非就是使用fork(),它有两个返回值。创建成功,给父进程返回PID,给子进程返回0&…

解决:使用layui.treeTable.updateNode,更新表格数据后,done里面的事件丢失问题

1. 背景 在给树形表格添加行点击事件,并且只更新当前行数据。 treeTable.updateNode("SpeProjListId", result.LAY_DATA_INDEX, result);更新数据后,点击事件失效。 1. 给字段绑定事件: class"link_a link_style" , {…

AI2.0时代,普通小白如何通过AI月入30万

最近这2年AI真的太火了,很多人都在讨论怎么用AI赚钱、提高效率。其实,我觉得AI并没有那么复杂,尤其是如果你不做AI底层研究,只是利用它来帮你省事、提效、赚钱,那就像当初学用电脑、用手机一样简单。你不需要懂AI的技术…

论文阅读:PET/CT Cross-modal medical image fusion of lung tumors based on DCIF-GAN

摘要 背景: 基于GAN的融合方法存在训练不稳定,提取图像的局部和全局上下文语义信息能力不足,交互融合程度不够等问题 贡献: 提出双耦合交互式融合GAN(Dual-Coupled Interactive Fusion GAN,DCIF-GAN&…

Oracle 数据库安装和配置详解

Oracle 数据库安装和配置详解 Oracle 数据库是一款功能强大、广泛使用的企业级关系数据库管理系统 (RDBMS),适用于处理大型数据库和复杂事务。本文将介绍如何在 Linux 和 Windows 环境下安装 Oracle 数据库,并对其进行基本配置,帮助开发者快…

国外电商系统开发-运维系统拓扑布局

点击列表中设备字段,然后定位到【拓扑布局】中,可以看到拓扑发生了变化 再回头,您再次添加一个服务器到系统中,并且选择该服务器的连接节点为您刚才创建的“SDN路由器”,保存后,您可以看到这个服务器连接着…

红帽操作系统Linux基本命令2( Linux 网络操作系统 06)

本文接着上篇Linux常用命令-1继续往后学习其他常用命令。 2.3 目录操作类命令 1.mkdir命令 mkdir命令用于创建一个目录。该命令的语法为: 上述目录名可以为相对路径,也可以为绝对路径。 mkdir命令的常用参数选项如下。 -p:在创…

通过dem2terrain生成MapboxGL地形服务

概述 MapboxGL在2的版本之后通过地形服务开始支持三维的展示了,之前也有文章“mapboxGL2中Terrain的离线化应用”对该服务进行过说明与分析。前些天在翻公众号的时候翻到了dem2terrain可以生成地形服务,同时做了一些优化,今天就给大家分享一…

畅享免费服务:PDF 转图片在线转换软件的魅力

为了方便在社交媒体上分享文档内容,还为了更好地适应特定的编辑需求,将 PDF 文件转换为图片格式都具有重要的意义。而如今,幸运的是,有许多pdf转图片在线转换免费工具为我们提供了便捷、高效的 PDF 转图片服务。接下来&#xff0c…

MongoDB 数据库服务搭建(单机)

下载地址 下载测试数据 作者:程序那点事儿 日期:2023/02/15 02:16 进入下载页,选择版本后,右键Download复制连接地址 下载安装包 ​ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.14.tgz​ …

Redis: Sentinel哨兵监控架构及环境搭建

概述 在主从模式下,我们通过从节点只读模式提高了系统的并发能力并发不断增加,只需要扩展从节点即可,只要主从服务器之间,网络连接正常主服务器就会将写入自己的数据同步更新给从服务器,从而保证主从服务器的数据相同…

SQL自用小结

推荐一下这个知识点总结 《数据库系统概论》第五版 学习笔记总目录 1. SQL概述 SQL(Structured Query Language,结构化查询语言)是一种用于定义、查询、更新和控制关系数据库的标准化语言。 它包含了数据定义语言(DDL&#xff0…

51单片机系列-按键检测原理

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 独立按键是检测低电平的。 下面我们来看一张对应的电路原理图: 在这张图当中,P1,P2,P3内部都上拉了电阻,但是P0没有&am…

码随想录算法训练营第62天|卡码网:97. 小明逛公园、127. 骑士的攻击

1. 卡码网 97. 小明逛公园 题目链接:https://kamacoder.com/problempage.php?pid1155 文章链接:https://www.programmercarl.com/kamacoder/0097.小明逛公园.html 思路: 使用Floyd 算法,目的是解决多源最短路问题,即 …

Java项目实战II基于Java+Spring Boot+MySQL的房产销售系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者 一、前言 随着房地产市场的蓬勃发展,房产销售业务日益复杂,传统的手工管理方式已难以满…

机器学习/数据分析--用通俗语言讲解时间序列自回归(AR)模型,并用其预测天气,拟合度98%+

时间序列在回归预测的领域的重要性,不言而喻,在数学建模中使用及其频繁,但是你真的了解ARIMA、AR、MA么?ACF图你会看么?? 时间序列数据如何构造???,我打过不少…