\ No newline at end of file
diff --git a/docs/_layouts/rule.html b/docs/_layouts/rule.html
index de7b8ca3c8c..9299ab37db1 100644
--- a/docs/_layouts/rule.html
+++ b/docs/_layouts/rule.html
@@ -9,11 +9,21 @@
Rationale
{{page.rationale | markdownify}}
{% endif %}
-{% if page.requiresTypeInfo %}
- Note:
- This rule requires type info to run
-{% endif %}
+{% if page.typescriptOnly or page.hasFix or page.requiresTypeInfo %}
+
Notes:
+
+ {% if page.typescriptOnly %}
+ TS Only
+ {% endif %}
+ {% if page.hasFix %}
+ Has Fixer
+ {% endif %}
+ {% if page.requiresTypeInfo %}
+ Requires Type Info
+ {% endif %}
+
+{% endif %}
Config
{{page.optionsDescription | markdownify}}
diff --git a/docs/_sass/_base.scss b/docs/_sass/_base.scss
index 52b4aea6e1d..52e6af050e6 100644
--- a/docs/_sass/_base.scss
+++ b/docs/_sass/_base.scss
@@ -70,3 +70,106 @@ figcaption {
}
}
}
+
+
+/**
+ * Rules & Feature Badges
+ */
+ .rules-list {
+ list-style: none;
+ margin: 0 !important; //need to override the `main-content ul` selector
+
+ > li {
+ &:nth-child(odd) {
+ a {
+ background-color: rgba(0, 0, 0, .03);
+ }
+ }
+
+ a {
+ display: block;
+ border-left: 3px solid transparent;
+ text-decoration: none;
+ padding: .75rem;
+
+ &:hover {
+ background-color: rgba(0, 0, 0,.075);
+ border-left-color: #159957;
+ }
+ }
+ }
+ }
+
+ .rule-features {
+ //This is the container for a list of feature badges
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ }
+
+ .feature {
+ //This is the setup for the a feature badge
+ display: inline-block;
+ margin-right: 2px;
+ padding: 2px 4px;
+ font-weight: 700;
+ line-height: 1;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border: 1px solid transparent;
+ border-radius: .25rem;
+ cursor: help;
+
+ &:before {
+ //This is the setup for the icon that appears inside the badge
+ display: inline-block;
+ margin-right: 2px;
+ }
+
+ &.feature-sm {
+ //This class is added to make the feature badge smaller. This is used on the rules list
+ padding: 1px 3px;
+ font-size: 75%;
+ }
+
+ &.feature-ts-only {
+ //This feature badge is added to rules that are "TypeScript Only"
+ background-color: #FCF8E3;
+ border-color: #FAF2CC;
+ color: #8A6D3B;
+
+ &:before {
+ content: "\1F4C4"; //"page facing up" icon - http://www.fileformat.info/info/unicode/char/1F4C4/index.htm
+ }
+ }
+
+ &.feature-fixer {
+ //This feature badge is added to rules that have an auto-fixer
+ background-color: #DFF0D8;
+ border-color: #D0E9C6;
+ color: #3C763D;
+
+ &:before {
+ content: "\1f527"; //"wrench" icon - http://www.fileformat.info/info/unicode/char/1f527/index.htm
+ }
+ }
+
+ &.feature-requires-type-info {
+ //This feature badge is added to rules that require type information
+ background-color: #F2DEDE;
+ border-color: #EBCCCC;
+ color: #A94442;
+
+ &:before {
+ content: "\2139"; //"information source" icon - http://www.fileformat.info/info/unicode/char/2139/index.htm
+ //Surround it with a blue circle
+ border-radius: 50%;
+ background: #0078D7;
+ color: #FFF;
+ width: 1em;
+ }
+ }
+ }
diff --git a/src/rules/completedDocsRule.ts b/src/rules/completedDocsRule.ts
index 17dc0a44584..fa3847f250e 100644
--- a/src/rules/completedDocsRule.ts
+++ b/src/rules/completedDocsRule.ts
@@ -140,8 +140,8 @@ export class Rule extends Lint.Rules.TypedRule {
ruleName: "completed-docs",
description: "Enforces documentation for important items be filled out.",
optionsDescription: Lint.Utils.dedent`
- \`true\` to enable for ["${ARGUMENT_CLASSES}", "${ARGUMENT_FUNCTIONS}", "${ARGUMENT_METHODS}", "${ARGUMENT_PROPERTIES}"],
- or an array with each item in one of two formats:
+ \`true\` to enable for ["${ARGUMENT_CLASSES}", "${ARGUMENT_FUNCTIONS}", "${ARGUMENT_METHODS}", "${ARGUMENT_PROPERTIES}"],
+ or an array with each item in one of two formats:
* \`string\` to enable for that type
* \`object\` keying types to when their documentation is required: