问题标签 [code-inspection]

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 回答
1670 浏览

c# - 测试项目的不同 stylecop 规则

我与 stylecop 一起工作,发现它非常有帮助。但是,我希望我的测试项目有一套与我的普通 c# 类库不同的规则。

这可能吗?

例如,我不希望我的方法在普通库中包含下划线,但在我的测试项目中可以。所以我的 IDE 应该提醒我在正常项目中违反规则,而不是在测试项目中。

接下来是我希望将类似的内容作为我的 msbuild 任务的一部分。

0 投票
4 回答
3506 浏览

python - 在python中检测空函数定义

我需要检测一个函数是否为空定义。它可以像:

或喜欢:

或喜欢:

使用“检查”模块检测它们的最优雅方法是什么?有没有比这更好的方法:

0 投票
2 回答
2005 浏览

google-chrome - 在 Firefox 中检查元素标尺

我想知道有没有办法在 Firefox 中查看标尺,例如 Chrome 检查元素标尺。

Chrome 显示您当前的宽度,即。宽度 + 填充 = 标尺悬停时的当前宽度。

请参阅下面的 Chrome 屏幕截图以获取参考。 谷歌浏览器检查元素计算的高度/宽度标尺

0 投票
1 回答
283 浏览

.net - 使用 [Obsolete] 属性来指示开发人员不要使用 API 的某些部分是一种好习惯吗?

最近我一直在写一些可序列化的对象,它也处理特定的逻辑并具有特定的生命周期。为了使其正常工作,必须使用适当的构造函数对其进行实例化,该构造函数需要强制参数。但是,出于序列化目的,我还必须添加一个公共默认构造函数。

该对象将由我们的 API 公开可用,并且第 3 方开发人员应该能够实例化和使用它。尽管会有适当的文档说明如何正确操作该对象,但不能保证有人会尝试使用不正确的构造函数——然后遇到麻烦。

我正在寻找一种巧妙的方法来在第 3 方开发人员编写他们的代码时应用一些指导。我想到了这个Obsolete属性——我可以用适当的注释来注释序列化构造函数作为消息。然后该消息将出现在输出警告中,并将开发人员引导至正确的代码行。此外,Visual Studio 和使用的任何代码检查插件都会适当地突出显示构造函数的用法。

这种方法困扰我的是Obsolete属性的目的完全不同。它的语义含义是被装饰的项目已被弃用,并且可能会在以后的版本中被删除。在序列化构造函数场景中这是错误的,并且该属性的用法和含义之间会存在差异。更不用说某些开发部门可能启用的“将警告视为错误”选项......

所以,问题是 - 对于这种属性的使用,这是一种可接受的做法吗?是否有任何其他合法和通用的方式来达到相同的效果(通用我的意思是不依赖第 3 方代码检查插件等 - 我不控制谁使用代码以及他们的设置是什么)?


关于下面答案中的评论(这对我仍然有用),我必须澄清我在可继承类上使用受保护的默认构造函数。构造函数用于支持 XML 序列化,但不应用于在业务逻辑中初始化类。继承类应该调用其他一些基本构造函数,编写继承类的开发人员需要知道这一点。尽管如此,如果需要,从该代码派生的开发人员还必须能够为其继承的类启用 XML 序列化。

0 投票
0 回答
600 浏览

java - IntelliJ IDEA 代码检查突出显示错误的可见性错误

所以,我遇到了这个问题——一个奇怪的问题。我有一个库作为 IDEA 项目的一部分 - 其中所有代码在 'tk.*' 下都是公开可见的(即:所有类都存在于 tk 的子包中)。如果尝试导入驻留在该包中的类 IDEA 会突出显示导入语句(只有 'tk' 提醒你 - 这很奇怪),引用后面提到的原因。尽管存在明显的“错误”,但该项目(由大量文件组成)编译成功 - 事实上非常如此。

信息:

  • 高亮原因(当您将鼠标悬停在上述高亮上时):'tk' is not public in ''
    • 请注意:从所述包导入的文件不在默认包中。
  • 似乎IDEA没有发现从驻留在其他库中的包导入的错误
  • 上述文件导入的类不是包私有的,也不是受保护的,也不是私有的——它们是公共的
  • 项目的路径设置应该是正确的,但是我愿意接受这些可能有问题的建议

笔记:

  • 对不起,如果这个问题读起来很奇怪——我对我目前居住的环境相当分心。
0 投票
1 回答
592 浏览

import - 使用 IntelliJ IDEA 导入检查配置文件时出现问题

我想将检查配置文件导入我的 IntelliJ IDEA 项目。我尝试了以下方法:单击检查器图标(窗口右下角)-> 配置检查-> 导入-> [选择配置文件 XML 文件]-> 确定。这样做之后,不会出现任何错误消息,看起来确实一切正常。但是当我再次查看可用检查配置文件列表时,最近导入的配置文件不可用。

难道我做错了什么?是否有关于此问题的任何已知错误?

这是文件包含的内容:

0 投票
2 回答
174 浏览

c# - “var objectName= new SomeObject()”和“interfaceName objectName= new SomeObject()”之间的区别

我正在通过 resharper 的代码检查进行一些代码分析,我收到了下一个警告:

仅使用属性“propertyname”的实现

我的界面上有这个警告,如果我用谷歌搜索,我发现了这个 jetbrains 页面: http ://confluence.jetbrains.com/display/ReSharper/Only+implementations+of+property+are+used

那根本没有帮助我,因为那样我就没有界面了......

所以我开始测试如何摆脱那个警告。在以下虚拟接口和类上:

如果我使用:

然后出现警告。但是当我使用下一行时,警告会消失。

我不是界面忍者,所以我想知道,这两种方式有什么区别..?

谢谢!

0 投票
1 回答
1349 浏览

python - 查找函数的所有函数调用

查找函数进行的所有函数调用的最佳方法是什么?我想在运行时执行此操作(可能使用装饰器)。

是检索源代码的最佳方法inspect(这意味着我将不得不访问源代码......所以没有交互式解释器支持)然后用 解析它ast?有没有更好的办法?

首选 Python 2.7,但不是必需的。我希望它足够简单,可以自己做。如果其他人已经做到了,我会查看源代码以便弄清楚。

最终,我只会对使用特定装饰器的函数调用感兴趣,但在 SO 上已经有这部分的答案。

编辑:

印刷

我现在意识到,由于 Python 的动态性,这在一般情况下是不可能的。但我可以涵盖一些案例吗?

仅供参考:“你是个白痴,你为什么会认为能够分辨出另一个函数调用了哪些函数,我想不出任何理由为什么这会有用,因此它一定对你没有用”是一个好的回应。我想知道。

0 投票
0 回答
379 浏览

android - 在带有xml的android studio中没有自动完成功能

突然我的 xml 注入停止处理属性,我不知道如何修复它

在此处输入图像描述

如果我按 STRG+SPACE,它会说“没有建议”。

命名空间似乎是有效的,因为注入适用于添加形状等

在此处输入图像描述

0 投票
0 回答
2077 浏览

java - IntelliJ IDEA 代码检查:HQL 自定义方言和注册函数

我的问题是关于

  1. 在 Hibernate 查询语言中使用注册函数进行日期/时间操作和
  2. IntelliJ IDEA 对 HQL 中这些注册函数的代码检查。

我使用带有 Java 7 的 Hibernate 4.2.5,SQL Server 2008 R2 作为数据库,以及 IntelliJ IDEA 12.1.6。

在 HQL 查询中,我需要执行 TSQL DATEADD 函数 - 或等效的 HQL 日期操作。这似乎不存在。

这是我想要实现的目标:

令人失望的是,在线搜索答案毫无帮助,最常见的建议(如此处看到的评论:https ://stackoverflow.com/a/18150333/2753571 )似乎是“不要在 hql 中使用日期操作”。在一般情况下(例如,当您想根据多行中另一列中的值更新一列时),我看不到如何绕过在 SQL 语句中执行操作。

与这篇文章中的建议类似:HQL 中的日期操作,我继承了 SQLServerDialect 实现并注册了新函数:

并将此属性添加到我的 persistence.xml:

然后我用一个简单的(无意义的,承认的)查询进行测试,如下所示:

这些函数似乎已成功注册,并且该查询似乎正在工作,因为生成了以下 SQL 并且结果正确:

但是我现在遇到了 IntelliJ IDEA 的这个问题:在 HQL 中使用 get_date() 的地方,代码检查抱怨“<expression> expected, got ')'”。这被标记为错误,文件以红色标记为编译失败。

有人可以解释一下如何处理这个问题,或者解释一下更好的方法是什么?我是否使用了不正确的 SQLFunction 模板 (VarArgsSQLFunction)?如果是,哪个是最好用的?

我希望注册函数的使用不会在我的 IDE 中被标记为无效。理想情况下,如果有人可以提出比创建新的方言子类更好的方法,那就太棒了。