diff options
author | Tim Smith <tsmith84@gmail.com> | 2020-06-23 15:39:31 -0700 |
---|---|---|
committer | Tim Smith <tsmith84@gmail.com> | 2020-06-23 15:39:31 -0700 |
commit | 6f6f107bc1c76e5f3b5c8f2c1dbde73859e8ad09 (patch) | |
tree | c0b812e5872f7d79aebfd50f9f26435482b3ec6d | |
parent | ae23ca40a68b58dbff20e20a47105c265ceb0ce2 (diff) | |
download | ohai-6f6f107bc1c76e5f3b5c8f2c1dbde73859e8ad09.tar.gz |
Add cspell task
Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | Rakefile | 1 | ||||
-rw-r--r-- | cspell.json | 38 | ||||
-rw-r--r-- | tasks/spellcheck.rb | 34 |
4 files changed, 77 insertions, 1 deletions
@@ -12,4 +12,7 @@ vendor # yard .yardoc -doc/*
\ No newline at end of file +doc/* + +# our custom dictionary pulled from https://github.com/chef/chef_dictionary/ +chef_dictionary.txt
\ No newline at end of file @@ -2,6 +2,7 @@ require "bundler/gem_tasks" begin require "rspec/core/rake_task" + require_relative "tasks/spellcheck" RSpec::Core::RakeTask.new do |t| t.pattern = "spec/**/*_spec.rb" diff --git a/cspell.json b/cspell.json new file mode 100644 index 00000000..97996bf9 --- /dev/null +++ b/cspell.json @@ -0,0 +1,38 @@ +// cSpell Settings +{ + // Version of the setting file. Always 0.1 + "version": "0.1", + // language - current active spelling language + "language": "en", + "dictionaryDefinitions": [ + { + "name": "chef", + "file": "./chef_dictionary.txt", + "description": "Custom Chef Dictionary" + } + ], + "dictionaries": ["chef"], + // flagWords - list of words to be always considered incorrect + // This is useful for offensive words and common spelling errors. + // For example "hte" should be "the" + "flagWords": [ + "hte" + ], + "ignorePaths": [ + "CHANGELOG.md", + "**/*.gemspec", + "**/Gemfile.lock", + "**/Gemfile", + ".expeditor/**/*", + "**/*.yml", + "**/*.toml", + "spec/data/**/*", + "spec/**" + ], + "ignoreRegExpList": [ + // Ignore "'s" at the end of a word. If "Chef" is an accepted word, so is "Chef's". + "/'s\\b/", + // Ignore "'d" at the end of a word. If "dup" is an accepted word, so is "dup'd". + "/'d\\b/" + ] +} diff --git a/tasks/spellcheck.rb b/tasks/spellcheck.rb new file mode 100644 index 00000000..002518d9 --- /dev/null +++ b/tasks/spellcheck.rb @@ -0,0 +1,34 @@ +# +# Copyright:: Copyright (c) Chef Software Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +namespace :spellcheck do + task :fetch_common do + sh "wget https://raw.githubusercontent.com/chef/chef_dictionary/master/chef.txt -O chef_dictionary.txt" + end + + task run: :fetch_common do + sh 'cspell "**/*"' + end + + desc "List the unique unrecognized words in the project." + task unknown_words: :fetch_common do + sh 'cspell "**/*" --wordsOnly --no-summary | sort | uniq' + end +end + +desc "Run spellcheck on the project." +task spellcheck: "spellcheck:run" |