问题标签 [code-map]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
271 浏览

.net-core - 对 Visual Studio 2019 代码映射错误进行故障排除

我有一个 Visual Studio 2019 (16.5.4) 解决方案,其中包含大约 10 个 .Net Core 项目,有些是 .Net Corenetcoreapp3.1项目netstandard2.0。有些项目具有对其他项目的项目引用,大多数具有 NuPkg 依赖项。

如果我尝试从解决方案生成代码映射,大多数项目会在映射中按预期呈现,而 2 个项目在程序集名称旁边呈现红色 X,无法展开节点。

错误节点

我不知道代码图不喜欢什么。起初我以为是那个,netcoreapp3.1但我尝试添加一个当时的新项目,它渲染得很好。


编辑:在尝试创建一个简单的项目来重现该问题后,我将其范围缩小到包含此包参考:

那么,这个库中有什么东西会导致地图崩溃?


是否有一些日志文件或其他遥测数据可用于帮助解决此问题,以便我可以修改项目以生成成功的地图?

谢谢

-约翰

0 投票
1 回答
187 浏览

c# - 为什么 Code Map 不适用于 Unity 项目?

当您尝试针对 Unity 项目调用 Code Map 时,您会看到一个错误图标,并且没有任何元素可以展开:

在此处输入图像描述

为什么会这样以及如何解决?

0 投票
1 回答
37 浏览

xcode - XCode 中等效的 Visual Studio 代码映射

有没有人遇到过任何代码图 Visual Studio 替代 XCode 来可视化 ObjC 代码?我尝试了 OmniGraffle,但它不是那么容易使用并最终放弃了。我很惊讶 XCode 并没有像 Visual Studio 那样做任何投资。

0 投票
0 回答
61 浏览

xml - Visual Studio 代码映射不起作用 - 如何使用 xml 和 xslt 将 vb 代码片段转换为 dmgl 有向图/代码映射

我无法让 Visual Studio 建模/映射孤立/离散 VB 函数代码。

我正在使用用 VB.Net 编写的遗留应用程序。大多数应用程序代码/可执行文件对最终用户是不透明的,但它在表单后面具有用户空间自定义,可以与表单字段和数据模型交互。我需要做的是映射这个用户定义的代码以查找不良交互,例如循环逻辑。

TL,DR(问题):目标是获得某种实体关系或依赖图。我可以在 Viso 或其他东西中绘制这些,但是为所有代码都这样做是相当令人生畏的。

在我看来,应该有一种方法可以轻松地为函数及其内部结构以及读写模式建立模式。到目前为止我还没有发现任何东西。没有人应该尝试用 Excel 来做这件事——太多了。我熟悉正则表达式,但根据我的经验,它并不是真的适合这样的问题。

有什么办法吗?

如果对细节不感兴趣,请忽略以下

我尝试过使用 VS 代码映射,但它需要引用应用程序的已编译部分,而我没有。所以在 VS 中,这个用户代码基本上是死的、无法识别的孤立代码。它没有类上下文,只在运行时执行。这样做似乎相当困难。所以 VS Code 可以语法高亮它,但 Visual Studio 不能用它做任何事情,并且像代码映射和 dmg(有向图)这样的附加工具看不到它。

由于所有用户代码都是简单的函数,我希望以某种方式将其简单地转换为 DMGL,以查看它们在这种有限的上下文中如何相互引用。我可以使用 Excel 或 Regex 来做到这一点,但这必须是重新发明轮子的重大努力。我什至尝试过Object-Role Modeling,但是必须手动输入,太麻烦了。

我也看过 Roslyn,但它与 Visual Studio 的问题相同

在这里复制我所有的可疑函数可能不太好,但可以在以下位置看到整个上下文:最可能的罪魁祸首

理解显示的代码的关键是有一个表示时间卡的父/标题表单。Timecards 表中的字段以 lmp* 为前缀——并且有一个表示详细信息行的子子表单,称为数据库表 TimecardLines,其字段以 lml* 为前缀。

例子

当用户编辑时间卡行的某些字段时,可以调用这两个函数。我没有显示代码,只显示接口。每个都可以引用和更新由其他功能管理的字段。因此,以文本形式可视化可能的级联效果可能是一场噩梦。

标记为依赖项的项目是对应用程序已编译部分的调用,我只有接口足迹,除了作为入口/出口点之外无法分析。由于它们对我来说是不可变的,我无法修复它们,只能在不必要的地方避免它们。:

M1.Ax.Erp.Forms.Production.Timecard.TimecardLineView

  • +Timecard 条目问题的子级:M1.Ax.Erp.Forms.Production.TimecardView

  • 注:暂不考虑_Delete()事件。

更新:

lmlLaborHours - 隐式调用: -lmlLaborHours_ValueChanged()

  • lmlActualEndTime
    • 隐式调用:
      • TimecardLines_UpdateCompleted

输入:

lmlRoundedStartTime

  • lmlRoundedEndTime
  • lmlShiftID

依赖:

App.Ax("Shift").``CalculateHours``()

行为设置:

xapLMUpdateActualWithRounded

隐式调用:

lmpRoundedEndTime_ValueChanged()

更新:

  • lmlRoundedEndTime
    • 隐式调用:
      • lmlRoundedEndTime_ValueChanged
    • TimecardLines_UpdateCompleted
      • lmlLaborHours
      • lmlActualStartTime

输入:

lmlActualStartTime

  • lmlRoundedStartTime
  • lmlRoundedEndTime
  • lmlLaborHours
  • lmlShiftID

依赖项:

App.Ax("Shift").``CalculateEndTime``()

  • App.Ax("Shift").CalculateHours()

行为设置:

xapLMCalculateEndTime

  • xapLMUpdateActualWithRounded

当这些被编辑时,父标题会被更新,因此许多相关的父函数可能会发生不良交互:

M1.Ax.Erp.Forms.Production.Timecard.TimecardView

父级:+Timecard 条目问题:M1.Ax.Erp.Forms.Production.TimecardLineView

可以调用以下函数:TimecardLines_UpdateCompleted

更新:

lmpPayrollHours

输入:

lmpRoundedStartTime

  • lmpRoundedEndTime
  • lmpShiftID

依赖项:

App.Ax("TimecardFunctions").CalculateHours()

行为设置:

xapDCPayCalculationMethod

更新:

lmpPayrollHours

输入:

lmpRoundedStartTime

  • lmpRoundedEndTime
  • lmpShiftID

依赖项:

App.Ax("TimecardFunctions").CalculateHours()

行为设置:

xapDCPayCalculationMethod

等等。

PS:我没有创建标签 dmgl 的声誉分数 - 它应该是。如果有人可以标记它,那就太棒了。