├── .ruby-version ├── .rspec ├── .streerc ├── .irbrc ├── bin ├── setup ├── rake ├── rspec ├── rubocop ├── stree └── console ├── .gitignore ├── lib └── rubocop │ ├── obsession │ ├── version.rb │ └── plugin.rb │ ├── obsession.rb │ └── cop │ └── obsession │ ├── mixin │ ├── helpers.rb │ └── files │ │ └── verbs.txt │ ├── rails │ ├── validation_method_name.rb │ ├── validate_one_field.rb │ ├── short_validate.rb │ ├── callback_one_method.rb │ ├── migration_belongs_to.rb │ ├── private_callback.rb │ ├── service_perform_method.rb │ ├── no_callback_conditions.rb │ ├── safety_assured_comment.rb │ ├── fully_defined_json_field.rb │ ├── service_name.rb │ └── short_after_commit.rb │ ├── graphql │ └── mutation_name.rb │ ├── no_todos.rb │ ├── rspec │ ├── empty_line_after_final_let.rb │ └── describe_public_method.rb │ ├── too_many_paragraphs.rb │ ├── no_paragraphs.rb │ ├── no_break_or_next.rb │ └── method_order.rb ├── spec ├── rubocop │ ├── obsession_spec.rb │ └── cop │ │ └── obsession │ │ ├── rails │ │ └── service_name_spec.rb │ │ └── method_order_spec.rb └── spec_helper.rb ├── Rakefile ├── Gemfile ├── .github └── workflows │ └── main.yml ├── CODE_OF_CONDUCT.md ├── CREDITS.md ├── rubocop-obsession.gemspec ├── LICENSE.txt ├── CHANGELOG.md ├── .rubocop.yml ├── README.md ├── Gemfile.lock └── config └── default.yml /.ruby-version: -------------------------------------------------------------------------------- 1 | ruby-3.3.5 2 | -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | --format Fuubar 2 | --color 3 | --require spec_helper 4 | -------------------------------------------------------------------------------- /.streerc: -------------------------------------------------------------------------------- 1 | --print-width=100 2 | --plugins=plugin/single_quotes,plugin/disable_auto_ternary 3 | -------------------------------------------------------------------------------- /.irbrc: -------------------------------------------------------------------------------- 1 | require 'awesome_print' 2 | AwesomePrint.irb! 3 | 4 | IRB.conf[:USE_AUTOCOMPLETE] = false 5 | -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | IFS=$'\n\t' 4 | set -vx 5 | 6 | bundle install 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.bundle/ 2 | /.yardoc 3 | /_yardoc/ 4 | /coverage/ 5 | /doc/ 6 | /pkg/ 7 | /spec/reports/ 8 | /tmp/ 9 | -------------------------------------------------------------------------------- /lib/rubocop/obsession/version.rb: -------------------------------------------------------------------------------- 1 | module Rubocop 2 | module Obsession 3 | VERSION = '0.2.3' 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require 'rubygems' 3 | require 'bundler/setup' 4 | load Gem.bin_path('rake', 'rake') 5 | -------------------------------------------------------------------------------- /bin/rspec: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require 'rubygems' 3 | require 'bundler/setup' 4 | load Gem.bin_path('rspec-core', 'rspec') 5 | -------------------------------------------------------------------------------- /bin/rubocop: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require 'rubygems' 3 | require 'bundler/setup' 4 | load Gem.bin_path('rubocop', 'rubocop') 5 | -------------------------------------------------------------------------------- /bin/stree: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require 'rubygems' 3 | require 'bundler/setup' 4 | load Gem.bin_path('syntax_tree', 'stree') 5 | -------------------------------------------------------------------------------- /bin/console: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require 'bundler/setup' 4 | require 'rubocop/obsession' 5 | require 'irb' 6 | 7 | IRB.start(__FILE__) 8 | -------------------------------------------------------------------------------- /spec/rubocop/obsession_spec.rb: -------------------------------------------------------------------------------- 1 | describe Rubocop::Obsession do 2 | it 'has a version number' do 3 | expect(Rubocop::Obsession::VERSION).not_to eq nil 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | require 'rubocop/obsession' 2 | require 'rubocop/rspec/support' 3 | 4 | Dir["#{__dir__}/support/**/*.rb"].each { |f| require f } 5 | 6 | RSpec.configure do |config| 7 | config.expect_with :rspec do |c| 8 | c.syntax = :expect 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require 'bundler/gem_tasks' 2 | require 'rspec/core/rake_task' 3 | require 'rubocop/rake_task' 4 | require 'syntax_tree/rake_tasks' 5 | 6 | RSpec::Core::RakeTask.new(:spec) 7 | RuboCop::RakeTask.new 8 | SyntaxTree::Rake::CheckTask.new 9 | 10 | task default: %i[spec rubocop stree:check] 11 | -------------------------------------------------------------------------------- /lib/rubocop/obsession.rb: -------------------------------------------------------------------------------- 1 | require 'active_support' 2 | require 'active_support/core_ext/object/blank' 3 | require 'active_support/core_ext/string/inflections' 4 | require 'rubocop' 5 | 6 | require_relative 'cop/obsession/mixin/helpers' 7 | Dir["#{__dir__}/cop/obsession/**/*.rb"].sort.each { |file| require file } 8 | require_relative 'obsession/version' 9 | require_relative 'obsession/plugin' 10 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gemspec 4 | 5 | gem 'awesome_print' 6 | gem 'fuubar' 7 | gem 'rake' 8 | gem 'rspec' 9 | gem 'rspec-its' 10 | gem 'rubocop', require: false 11 | gem 'rubocop-performance', require: false 12 | gem 'rubocop-rake', require: false 13 | gem 'rubocop-rspec', require: false 14 | gem 'rubocop-rubycw', require: false 15 | gem 'standard' 16 | gem 'syntax_tree' 17 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | pull_request: 5 | push: 6 | branches: [main] 7 | 8 | jobs: 9 | check: 10 | runs-on: ubuntu-latest 11 | strategy: 12 | matrix: 13 | ruby-version: [3.3.5] 14 | steps: 15 | - name: Checkout code 16 | uses: actions/checkout@v4 17 | 18 | - name: Set up Ruby 19 | uses: ruby/setup-ruby@v1 20 | with: 21 | ruby-version: ${{ matrix.ruby-version }} 22 | bundler-cache: true 23 | 24 | - name: Run the default task 25 | run: bundle exec rake 26 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | Ace Template follows [The Ruby Community Conduct Guideline](https://www.ruby-lang.org/en/conduct) in all "collaborative space", which is defined as community communications channels (such as mailing lists, submitted patches, commit comments, etc.): 4 | 5 | * Participants will be tolerant of opposing views. 6 | * Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks. 7 | * When interpreting the words and actions of others, participants should always assume good intentions. 8 | * Behaviour which can be reasonably considered harassment will not be tolerated. 9 | 10 | If you have any concerns about behaviour within this project, please contact us at [conduct@jeromedalbert.com](mailto:conduct@jeromedalbert.com). 11 | -------------------------------------------------------------------------------- /CREDITS.md: -------------------------------------------------------------------------------- 1 | # Rubocop Obsession credits 2 | 3 | - Iaroslav Kurbatov https://github.com/viralpraxis gh-16, fix ServiceName 4 | - Hiemanshu Sharma https://github.com/hiemanshu gh-14, uninitialized constant 5 | - Ferran Pelayo Monfort https://github.com/ferranpm gh-11, improve method ordering, introduce tests 6 | - Oleksandr Bratashov https://github.com/abratashov gh-10, helper name conflict 7 | - Kieran Pilkington https://github.com/KieranP gh-9, uninitialized constant 8 | - Garrett Blehm https://github.com/garrettblehm gh-7, gh-8, fix SafetyAssuredComment 9 | - Joe https://github.com/slayer gh-5, autocorrect issue 10 | - Brendan Mulholland https://github.com/bmulholland gh-3, gh-4, sorbet sigs and protected issue 11 | - Dmitry Barskov https://github.com/DmitryBarskov gh-2 deprecated superclass 12 | - Jerome Dalbert https://github.com/jeromedalbert author and maintainer 13 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/mixin/helpers.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Helpers 7 | def rails_callback?(callback) 8 | return true if callback == 'validate' 9 | 10 | callback.match?( 11 | / 12 | ^(before|after|around) 13 | _.* 14 | (action|validation|create|update|save|destroy|commit|rollback)$ 15 | /x 16 | ) 17 | end 18 | 19 | def verb?(string) 20 | short_string = string[2..] if string.start_with?('re') 21 | 22 | verbs.include?(string) || verbs.include?(short_string) 23 | end 24 | 25 | private 26 | 27 | def verbs 28 | @@verbs ||= File.read("#{__dir__}/files/verbs.txt").split 29 | end 30 | end 31 | end 32 | end 33 | end 34 | -------------------------------------------------------------------------------- /lib/rubocop/obsession/plugin.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'lint_roller' 4 | 5 | module Rubocop 6 | module Obsession 7 | # A plugin that integrates Rubocop Obsession with RuboCop's plugin system. 8 | class Plugin < LintRoller::Plugin 9 | def about 10 | LintRoller::About.new( 11 | name: 'rubocop-obsession', 12 | version: VERSION, 13 | homepage: 'https://github.com/jeromedalbert/rubocop-obsession', 14 | description: 'A collection of RuboCop cops for enforcing higher-level code concepts.' 15 | ) 16 | end 17 | 18 | def supported?(context) 19 | context.engine == :rubocop 20 | end 21 | 22 | def rules(_context) 23 | LintRoller::Rules.new( 24 | type: :path, 25 | config_format: :rubocop, 26 | value: Pathname.new(__dir__).join('../../../config/default.yml') 27 | ) 28 | end 29 | end 30 | end 31 | end 32 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rails/validation_method_name.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Rails 7 | # This cop checks for validation methods that do not start with `validate_`. 8 | # 9 | # @example 10 | # # bad 11 | # validate :at_least_one_admin 12 | # 13 | # # good 14 | # validate :validate_at_least_one_admin 15 | class ValidationMethodName < Base 16 | MSG = 'Prefix custom validation method with validate_' 17 | 18 | def_node_matcher :on_validate_callback, <<~PATTERN 19 | (send nil? :validate (sym $_) ...) 20 | PATTERN 21 | 22 | def on_send(node) 23 | on_validate_callback(node) do |method_name| 24 | add_offense(node) if !method_name.start_with?('validate_') 25 | end 26 | end 27 | end 28 | end 29 | end 30 | end 31 | end 32 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rails/validate_one_field.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Rails 7 | # This cop checks for `validates` callbacks with multiple fields. 8 | # 9 | # One field per `validates` makes the validation extra clear. 10 | # 11 | # @example 12 | # # bad 13 | # validates :name, :status, presence: true 14 | # 15 | # # good 16 | # validates :name, presence: true 17 | # validates :status, presence: true 18 | class ValidateOneField < Base 19 | MSG = 'Validate only one field per line.' 20 | 21 | def_node_matcher :validates_with_more_than_one_field?, <<~PATTERN 22 | (send nil? :validates (sym _) (sym _) ...) 23 | PATTERN 24 | 25 | def on_send(node) 26 | add_offense(node) if validates_with_more_than_one_field?(node) 27 | end 28 | end 29 | end 30 | end 31 | end 32 | end 33 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rails/short_validate.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Rails 7 | # This cop checks for `validate` declarations that could be shorter. 8 | # 9 | # @example 10 | # # bad 11 | # validate :validate_url, on: %i(create update) 12 | # 13 | # # good 14 | # validate :validate_url 15 | class ShortValidate < Base 16 | MSG = 'The `on:` argument is not needed in this validate.' 17 | 18 | def_node_matcher :validate_with_unneeded_on?, <<~PATTERN 19 | ( 20 | send nil? :validate 21 | (sym _) 22 | (hash 23 | (pair (sym :on) (array <(sym :create) (sym :update)>)) 24 | ) 25 | ) 26 | PATTERN 27 | 28 | def on_send(node) 29 | add_offense(node) if validate_with_unneeded_on?(node) 30 | end 31 | end 32 | end 33 | end 34 | end 35 | end 36 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rails/callback_one_method.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Rails 7 | # This cop checks for Rails callbacks with multiple fields. 8 | # 9 | # One method per callback definition makes the definition extra clear. 10 | # 11 | # @example 12 | # # bad 13 | # after_create :notify_followers, :send_stats 14 | # 15 | # # good 16 | # after_create :notify_followers 17 | # after_create :send_stats 18 | class CallbackOneMethod < Base 19 | include Helpers 20 | 21 | MSG = 'Declare only one method per callback definition.' 22 | 23 | def_node_matcher :on_callback, <<~PATTERN 24 | (send nil? $_ (sym _) (sym _) ...) 25 | PATTERN 26 | 27 | def on_send(node) 28 | on_callback(node) { |callback| add_offense(node) if rails_callback?(callback.to_s) } 29 | end 30 | end 31 | end 32 | end 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /rubocop-obsession.gemspec: -------------------------------------------------------------------------------- 1 | require_relative 'lib/rubocop/obsession/version' 2 | 3 | Gem::Specification.new do |spec| 4 | spec.name = 'rubocop-obsession' 5 | spec.version = Rubocop::Obsession::VERSION 6 | spec.authors = ['Jerome Dalbert'] 7 | spec.email = ['jerome.dalbert@gmail.com'] 8 | 9 | spec.summary = 'High-level code style checking for Ruby files.' 10 | spec.description = 'A collection of RuboCop cops for enforcing higher-level code concepts.' 11 | spec.homepage = 'https://github.com/jeromedalbert/rubocop-obsession' 12 | spec.required_ruby_version = '>= 3.0.0' 13 | 14 | spec.metadata['homepage_uri'] = spec.homepage 15 | spec.metadata['source_code_uri'] = 'https://github.com/jeromedalbert/rubocop-obsession' 16 | spec.metadata['default_lint_roller_plugin'] = 'Rubocop::Obsession::Plugin' 17 | 18 | spec.files = Dir['LICENSE.txt', 'README.md', 'config/**/*', 'lib/**/*'] 19 | spec.licenses = ['MIT'] 20 | spec.require_paths = ['lib'] 21 | 22 | spec.add_dependency 'activesupport' 23 | spec.add_dependency 'lint_roller', '~> 1.1' 24 | spec.add_dependency 'rubocop', '~> 1.72' 25 | end 26 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2024 Jerome Dalbert 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/graphql/mutation_name.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Graphql 7 | # This cop checks for mutation names that do not start with a verb. 8 | # 9 | # Mutation names should start with a verb, because mutations are actions, 10 | # and actions are best described with verbs. 11 | # 12 | # @example 13 | # # bad 14 | # module Mutations 15 | # class Event < Base 16 | # end 17 | # end 18 | # 19 | # # good 20 | # module Mutations 21 | # class TrackEvent < Base 22 | # end 23 | # end 24 | class MutationName < Base 25 | include Helpers 26 | 27 | MSG = 'Mutation name should start with a verb.' 28 | 29 | def on_class(class_node) 30 | class_name = class_node.identifier.source 31 | class_name_first_word = class_name.underscore.split('_').first 32 | 33 | add_offense(class_node) if !verb?(class_name_first_word) 34 | end 35 | end 36 | end 37 | end 38 | end 39 | end 40 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/no_todos.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | # This cop checks for TODO/FIXME/etc comments. 7 | # 8 | # Avoid TODO comments, instead create tasks for them in your project 9 | # management software, and assign them to the right person. Half of the 10 | # TODOs usually never get done, and the code is then polluted with old 11 | # stale TODOs. Sometimes developers really mean to work on their TODOs 12 | # soon, but then Product re-prioritizes their work, or the developer 13 | # leaves the company, and never gets a chance to tackle them. 14 | # 15 | # @example 16 | # # bad 17 | # # TODO: remove this method when we ship the new signup flow 18 | # def my_method 19 | # ... 20 | # end 21 | # 22 | # # good 23 | # def my_method 24 | # ... 25 | # end 26 | class NoTodos < Base 27 | MSG = 'Avoid TODO comment, create a task in your project management tool instead.' 28 | KEYWORD_REGEX = /(^|[^\w])(TODO|FIXME|OPTIMIZE|HACK)($|[^\w])/i 29 | 30 | def on_new_investigation 31 | processed_source.comments.each do |comment| 32 | add_offense(comment) if comment.text.match?(KEYWORD_REGEX) 33 | end 34 | end 35 | end 36 | end 37 | end 38 | end 39 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rails/migration_belongs_to.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Rails 7 | # This cop checks for migrations that use `references` instead of `belongs_to`. 8 | # 9 | # Instead of adding `references` in migrations, use the `belongs_to` 10 | # alias. It reads nicer and is more similar to the `belongs_to` 11 | # declarations that you find in model code. 12 | # 13 | # @example 14 | # # bad 15 | # def change 16 | # add_reference :blog_posts, :user 17 | # end 18 | # 19 | # # good 20 | # def change 21 | # add_belongs_to :blog_posts, :user 22 | # end 23 | class MigrationBelongsTo < Base 24 | def_node_matcher :add_reference?, <<~PATTERN 25 | (send nil? :add_reference ...) 26 | PATTERN 27 | 28 | def_node_matcher :table_reference?, <<~PATTERN 29 | (send (lvar :t) :references ...) 30 | PATTERN 31 | 32 | def on_send(node) 33 | if add_reference?(node) 34 | add_offense(node, message: 'Use add_belongs_to instead of add_reference') 35 | elsif table_reference?(node) 36 | add_offense(node, message: 'Use t.belongs_to instead of t.references') 37 | end 38 | end 39 | end 40 | end 41 | end 42 | end 43 | end 44 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rspec/empty_line_after_final_let.rb: -------------------------------------------------------------------------------- 1 | begin 2 | require 'rubocop-rspec' 3 | rescue LoadError 4 | end 5 | 6 | if defined?(RuboCop::RSpec) 7 | module RuboCop 8 | module Cop 9 | module Obsession 10 | module Rspec 11 | # Same as RSpec/EmptyLineAfterFinalLet, but allows `let` to be followed 12 | # by `it` with no new line, to allow for this style of spec: 13 | # 14 | # @example 15 | # describe Url do 16 | # describe '#domain' do 17 | # context do 18 | # let(:url) { Url.new('http://www.some-site.com/some-page') } 19 | # it { expect(url.domain).to eq 'some-site.com' } 20 | # end 21 | # 22 | # context do 23 | # let(:url) { Url.new('some-site.com') } 24 | # it { expect(url.domain).to eq 'some-site.com' } 25 | # end 26 | # end 27 | # end 28 | class EmptyLineAfterFinalLet < RSpec::EmptyLineAfterFinalLet 29 | def missing_separating_line(node) 30 | line = final_end_location(node).line 31 | line += 1 while comment_line?(processed_source[line]) 32 | return if processed_source[line].blank? 33 | return if processed_source[line].match?(/\s*it /) 34 | 35 | yield offending_loc(line) 36 | end 37 | end 38 | end 39 | end 40 | end 41 | end 42 | end 43 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rails/private_callback.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Rails 7 | # This cop checks for callbacks methods that are not private. 8 | # 9 | # Callback methods are usually never called outside of the class, so 10 | # there is no reason to declare them in the public section. They should 11 | # be private. 12 | # 13 | # @example 14 | # # bad 15 | # before_action :load_blog_post 16 | # 17 | # def load_blog_post 18 | # ... 19 | # end 20 | # 21 | # # good 22 | # before_action :load_blog_post 23 | # 24 | # private 25 | # 26 | # def load_blog_post 27 | # ... 28 | # end 29 | class PrivateCallback < Base 30 | include VisibilityHelp 31 | include Helpers 32 | 33 | MSG = 'Make callback method private' 34 | 35 | def_node_matcher :on_callback, <<~PATTERN 36 | (send nil? $_ (sym $_) ...) 37 | PATTERN 38 | 39 | def on_new_investigation 40 | @callbacks = Set.new 41 | end 42 | 43 | def on_send(node) 44 | on_callback(node) do |callback, method_name| 45 | @callbacks << method_name if rails_callback?(callback.to_s) 46 | end 47 | end 48 | 49 | def on_def(node) 50 | if @callbacks.include?(node.method_name) && node_visibility(node) == :public 51 | add_offense(node, message: MSG) 52 | end 53 | end 54 | end 55 | end 56 | end 57 | end 58 | end 59 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rails/service_perform_method.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Rails 7 | # This cop checks for services whose single public method is not named 8 | # `perform`. 9 | # 10 | # Services and jobs with only one public method should have their method 11 | # named `perform` for consistency. The choice of `perform` as a name is 12 | # inspired from ActiveJob and makes it easier to make services and jobs 13 | # interchangeable. 14 | # 15 | # @example 16 | # # bad 17 | # class ImportCompany 18 | # def import 19 | # ... 20 | # end 21 | # end 22 | # 23 | # # bad 24 | # class ImportCompany 25 | # def execute 26 | # ... 27 | # end 28 | # end 29 | # 30 | # # good 31 | # class ImportCompany 32 | # def perform 33 | # ... 34 | # end 35 | # end 36 | class ServicePerformMethod < ServiceName 37 | extend AutoCorrector 38 | 39 | MSG = 'Single public method of Service should be called `perform`' 40 | 41 | def on_class(class_node) 42 | public_methods = public_methods(class_node) 43 | return if public_methods.length != 1 44 | method = public_methods.first 45 | 46 | if method.method_name != :perform 47 | add_offense(method) do |corrector| 48 | corrector.replace(method, method.source.sub(method.method_name.to_s, 'perform')) 49 | end 50 | end 51 | end 52 | end 53 | end 54 | end 55 | end 56 | end 57 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rails/no_callback_conditions.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Rails 7 | # This cop checks for model callbacks with conditions. 8 | # 9 | # Model callback with conditions should be avoided because they can 10 | # quickly degenerate into multiple conditions that pollute the macro 11 | # definition section, even more so if lambdas are involved. Instead, move 12 | # the condition inside the callback method. 13 | # 14 | # Note: conditions are allowed for `validates :field` callbacks, as it is 15 | # sometimes not easy to translate them into `validate :validate_field` 16 | # custom validation callbacks. 17 | # 18 | # @example 19 | # # bad 20 | # after_update_commit :crawl_rss, if: :rss_changed? 21 | # 22 | # def crawl_rss 23 | # ... 24 | # end 25 | # 26 | # # good 27 | # after_update_commit :crawl_rss 28 | # 29 | # def crawl_rss 30 | # return if !rss_changed? 31 | # ... 32 | # end 33 | class NoCallbackConditions < Base 34 | MSG = 35 | 'Avoid condition in callback declaration, move it inside the callback method instead.' 36 | 37 | def_node_matcher :callback_with_condition?, <<~PATTERN 38 | ( 39 | send nil? _ 40 | (sym _) 41 | (hash 42 | ... 43 | (pair (sym {:if :unless}) ...) 44 | ... 45 | ) 46 | ) 47 | PATTERN 48 | 49 | def on_send(node) 50 | return if !callback_with_condition?(node) 51 | callback = node.children[1] 52 | return if callback == :validates 53 | return if callback.to_s.include?('around') 54 | 55 | add_offense(node) 56 | end 57 | end 58 | end 59 | end 60 | end 61 | end 62 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rails/safety_assured_comment.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Rails 7 | # This cop checks uses of strong_migrations' `safety_assured { ... }` 8 | # without a valid reason. 9 | # 10 | # `safety_assured { ... }` should only be used after *carefully* 11 | # following the instructions from the strong_migrations gem. Always add a 12 | # `# Safe because ` comment explaining how you assured the safety 13 | # of the DB migration. The reason should be detailed and reviewed by a 14 | # knowledgeable PR reviewer. Failure to follow instructions may bring your 15 | # app down. 16 | # 17 | # @example 18 | # # bad 19 | # class RemoveSourceUrlFromBlogPosts < ActiveRecord::Migration[8.0] 20 | # def change 21 | # safety_assured { remove_column :blog_posts, :source_url } 22 | # end 23 | # end 24 | # 25 | # # good 26 | # class RemoveSourceUrlFromBlogPosts < ActiveRecord::Migration[8.0] 27 | # # Safe because this column was ignored with self.ignored_columns in PR #1234 28 | # def change 29 | # safety_assured { remove_column :blog_posts, :source_url } 30 | # end 31 | # end 32 | class SafetyAssuredComment < Base 33 | MSG = 34 | 'Add `# Safe because ` comment above safety_assured. ' \ 35 | 'An invalid reason may bring the site down.' 36 | 37 | def_node_matcher :safety_assured_block?, <<~PATTERN 38 | (block (send nil? :safety_assured) ...) 39 | PATTERN 40 | 41 | def on_block(node) 42 | return if !safety_assured_block?(node) 43 | comment = processed_source.ast_with_comments[node].map(&:text).join("\n") 44 | 45 | add_offense(node) if !comment.match?(/^# Safe because( [^ ]+){4}/) 46 | end 47 | end 48 | end 49 | end 50 | end 51 | end 52 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/too_many_paragraphs.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | # This cop checks for methods with too many paragraphs. 7 | # 8 | # You should organize your method code into 2 to 3 paragraphs maximum. 9 | # The 3 possible paragraphs themes could be: initialization, action, 10 | # and result. Shape your paragraph according to those themes. Spec code 11 | # should also be organized into 2 to 3 paragraphs 12 | # (initialization/action/result or given/when/then paragraphs). 13 | # 14 | # After organizing your paragraphs, if they are too long or dense, it 15 | # could be a sign that they should be broken into smaller methods. 16 | # 17 | # @example 18 | # # bad 19 | # def set_seo_content 20 | # return if seo_content.present? 21 | # 22 | # template = SeoTemplate.find_by(template_type: 'BlogPost') 23 | # 24 | # return if template.blank? 25 | # 26 | # self.seo_content = build_seo_content(seo_template: template, slug: slug) 27 | # 28 | # Rails.logger.info('Content has been set') 29 | # end 30 | # 31 | # # good 32 | # def set_seo_content 33 | # return if seo_content.present? 34 | # template = SeoTemplate.find_by(template_type: 'BlogPost') 35 | # return if template.blank? 36 | # 37 | # self.seo_content = build_seo_content(seo_template: template, slug: slug) 38 | # 39 | # Rails.logger.info('Content has been set') 40 | # end 41 | class TooManyParagraphs < Base 42 | MSG = 'Organize method into 2 to 3 paragraphs (init, action, result).' 43 | MAX_PARAGRAPHS = 3 44 | 45 | def on_def(node) 46 | lines = processed_source.lines[node.first_line..(node.last_line - 2)] 47 | blank_lines_count = lines.count(&:blank?) 48 | 49 | add_offense(node) if blank_lines_count >= MAX_PARAGRAPHS 50 | end 51 | alias_method :on_defs, :on_def 52 | end 53 | end 54 | end 55 | end 56 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/no_paragraphs.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | # This cop checks for methods with many instructions but no paragraphs. 7 | # 8 | # If your method code has many instructions that are not organized into 9 | # paragraphs, you should break it up into multiple paragraphs to make the 10 | # code more breathable and readable. The 3 possible paragraphs themes 11 | # could be: initialization, action, and result. 12 | # 13 | # @example 14 | # # bad 15 | # def set_seo_content 16 | # return if slug.blank? 17 | # return if seo_content.present? 18 | # template = SeoTemplate.find_by(template_type: 'BlogPost') 19 | # return if template.blank? 20 | # self.seo_content = build_seo_content(seo_template: template, slug: slug) 21 | # Rails.logger.info('Content has been set') 22 | # end 23 | # 24 | # # good 25 | # def set_seo_content 26 | # return if slug.blank? 27 | # return if seo_content.present? 28 | # template = SeoTemplate.find_by(template_type: 'BlogPost') 29 | # return if template.blank? 30 | # 31 | # self.seo_content = build_seo_content(seo_template: template, slug: slug) 32 | # 33 | # Rails.logger.info('Content has been set') 34 | # end 35 | class NoParagraphs < Base 36 | MSG = 'Method has many instructions and should be broken up into paragraphs.' 37 | MAX_CONSECUTIVE_INSTRUCTIONS_ALLOWED = 5 38 | 39 | def on_def(node) 40 | lines = processed_source.lines[node.first_line..(node.last_line - 2)] 41 | return if lines.any?(&:blank?) 42 | node_body_type = node&.body&.type 43 | return if %i[send if or case array hash].include?(node_body_type) 44 | return if %w[asgn str].any? { |string| node_body_type.to_s.include?(string) } 45 | 46 | too_big = 47 | case node_body_type 48 | when :begin, :block, :rescue 49 | node.body.children.count > MAX_CONSECUTIVE_INSTRUCTIONS_ALLOWED && 50 | !node.body.children.all? { |child| child.type.to_s.include?('asgn') } 51 | else 52 | lines.count > MAX_CONSECUTIVE_INSTRUCTIONS_ALLOWED 53 | end 54 | 55 | add_offense(node) if too_big 56 | end 57 | alias_method :on_defs, :on_def 58 | end 59 | end 60 | end 61 | end 62 | -------------------------------------------------------------------------------- /spec/rubocop/cop/obsession/rails/service_name_spec.rb: -------------------------------------------------------------------------------- 1 | describe RuboCop::Cop::Obsession::Rails::ServiceName, :config do 2 | context 'when class name does not start with a verb' do 3 | it 'registers an offense' do 4 | expect_offense(<<~RUBY) 5 | class BlogPostPopularityJob < ApplicationJob 6 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Service or Job name should start with a verb. 7 | def perform 8 | end 9 | end 10 | RUBY 11 | end 12 | 13 | it 'registers an offense when class has a nested namespace' do 14 | expect_offense(<<~RUBY) 15 | module Scheduled 16 | class BlogPostPopularityJob < ApplicationJob 17 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Service or Job name should start with a verb. 18 | def perform 19 | end 20 | end 21 | end 22 | RUBY 23 | end 24 | 25 | it 'registers an offense when class has a compact namespace' do 26 | expect_offense(<<~RUBY) 27 | class Scheduled::BlogPostPopularityJob < ApplicationJob 28 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Service or Job name should start with a verb. 29 | def perform 30 | end 31 | end 32 | RUBY 33 | end 34 | 35 | it 'does not register an offense when class has more than 1 public method' do 36 | expect_no_offenses(<<~RUBY) 37 | class BlogPostImporter < ApplicationJob 38 | def import_one_post 39 | end 40 | 41 | def import_all_posts 42 | end 43 | end 44 | RUBY 45 | end 46 | end 47 | 48 | context 'when class name starts with a verb' do 49 | it 'does not register an offense' do 50 | expect_no_offenses(<<~RUBY) 51 | class UpdateBlogPostPopularityJob < ApplicationJob 52 | def perform 53 | end 54 | end 55 | RUBY 56 | end 57 | 58 | it 'does not register an offense when class has a nested namespace' do 59 | expect_no_offenses(<<~RUBY) 60 | module Scheduled 61 | class UpdateBlogPostPopularityJob < ApplicationJob 62 | def perform 63 | end 64 | end 65 | end 66 | RUBY 67 | end 68 | 69 | it 'does not register an offense when class has a compact namespace' do 70 | expect_no_offenses(<<~RUBY) 71 | class Scheduled::UpdateBlogPostPopularityJob < ApplicationJob 72 | def perform 73 | end 74 | end 75 | RUBY 76 | end 77 | end 78 | end 79 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 0.2.3 - 2025-06-28 2 | 3 | - Fix `Rails/ServiceName` misbehaving for compact namespaces. Pull request 4 | [#16](https://github.com/jeromedalbert/rubocop-obsession/pull/16) by Iaroslav 5 | Kurbatov. 6 | 7 | ## 0.2.2 - 2025-05-11 8 | 9 | - Fix `MethodOrder` uninitialized constant error sometimes happening in source 10 | code that uses aliases. 11 | 12 | ## 0.2.1 - 2025-03-25 13 | 14 | - Fix `Rspec/EmptyLineAfterFinalLet` uninitialized constant error. 15 | 16 | ## 0.2.0 - 2025-03-22 17 | 18 | - Add new `alphabetical` style to `MethodOrder` cop. 19 | - Make Rubocop Obsession work as a RuboCop plugin. 20 | 21 | ## 0.1.15 - 2025-02-24 22 | 23 | - Add new `step_down` style to `MethodOrder` cop. This style more closely 24 | aligns with the Stepdown rule from the Clean Code book. Pull request 25 | [#11](https://github.com/jeromedalbert/rubocop-obsession/pull/11) by Ferran 26 | Pelayo Monfort. 27 | - Introduce unit tests to the codebase. Pull request 28 | [#11](https://github.com/jeromedalbert/rubocop-obsession/pull/11) by Ferran 29 | Pelayo Monfort. 30 | 31 | ## 0.1.14 - 2025-02-03 32 | 33 | - Rename internal helper to avoid conflict with Rubocop. 34 | 35 | ## 0.1.13 - 2024-12-08 36 | 37 | - Fix `Rails/ServicePerformMethod` autocorrect sometimes resulting in infinite 38 | loops. 39 | 40 | ## 0.1.12 - 2024-11-26 41 | 42 | - Fix `Rspec/DescribePublicMethod` uninitialized constant error sometimes 43 | happening. 44 | 45 | ## 0.1.11 - 2024-11-14 46 | 47 | - Do not check method order in modules for the time being. 48 | 49 | ## 0.1.10 - 2024-11-14 50 | 51 | - Fix `Rails/SafetyAssuredComment` misbehaving when there are multiple 52 | comments. Pull request 53 | [#8](https://github.com/jeromedalbert/rubocop-obsession/pull/8) by Garrett 54 | Blehm. 55 | 56 | ## 0.1.9 - 2024-11-05 57 | 58 | - Internal cleanups. 59 | 60 | ## 0.1.8 - 2024-11-04 61 | 62 | - Improve cops documentation. 63 | 64 | ## 0.1.7 - 2024-11-02 65 | 66 | - Fix `MethodOrder` autocorrect for Sorbet signatures. 67 | - Fix `MethodOrder` conflicts when there are both protected and private 68 | methods. 69 | 70 | ## 0.1.6 - 2024-11-01 71 | 72 | - Fix `MethodOrder` autocorrect for methods not separated by new lines. 73 | 74 | ## 0.1.5 - 2024-10-28 75 | 76 | - Make cops inherit from `RuboCop::Cop::Base` instead of deprecated 77 | `RuboCop::Cop::Cop`. 78 | 79 | ## 0.1.4 - 2024-10-27 80 | 81 | - Improve cops documentation. 82 | 83 | ## 0.1.2 - 2024-10-27 84 | 85 | - Check method order in modules. 86 | 87 | ## 0.1.1 - 2024-10-27 88 | 89 | - Add initial cops. 90 | 91 | ## 0.1.0 - 2024-10-20 92 | 93 | - Initial release. 94 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rails/fully_defined_json_field.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Rails 7 | # This cop checks for json(b) fields that are not fully defined with 8 | # defaults or comments. 9 | # 10 | # - json(b) fields should have a default value like {} or [] so code can 11 | # do my_field['field'] or my_field.first without fear that my_field is 12 | # nil. 13 | # - It is impossible to know the structure of a json(b) field just by 14 | # reading the schema, because json(b) is an unstructured type. That's why 15 | # an "Example: ..." Postgres comment should always be present when 16 | # defining the field. 17 | # 18 | # @example 19 | # # bad 20 | # def change 21 | # add_column :languages, :items, :jsonb 22 | # end 23 | # 24 | # # good 25 | # def change 26 | # add_column :languages, 27 | # :items, 28 | # :jsonb, 29 | # default: [], 30 | # comment: "Example: [{ 'name': 'ruby' }, { 'name': 'python' }]" 31 | # end 32 | class FullyDefinedJsonField < Base 33 | def_node_matcher :json_field?, <<~PATTERN 34 | (send nil? :add_column _ _ (sym {:json :jsonb}) ...) 35 | PATTERN 36 | 37 | def_node_matcher :has_default?, <<~PATTERN 38 | (hash <(pair (sym :default) ...) ...>) 39 | PATTERN 40 | 41 | def_node_matcher :has_comment_with_example?, <<~PATTERN 42 | (hash < 43 | (pair 44 | (sym :comment) 45 | `{ 46 | (str /^Example: [\\[\\{].{4,}[\\]\\}]/) | 47 | (dstr (str /^Example: [\\[\\{]/) ... (str /[\\]\\}]/) ) 48 | } 49 | ) 50 | ... 51 | >) 52 | PATTERN 53 | 54 | def on_send(node) 55 | return if !json_field?(node) 56 | options_node = node.children[5] 57 | 58 | if !has_default?(options_node) 59 | add_offense(node, message: 'Add default value of {} or []') 60 | end 61 | 62 | if !has_comment_with_example?(options_node) 63 | add_offense( 64 | node, 65 | message: 66 | 'Add `comment: "Example: "` option with an example array or hash value' 67 | ) 68 | end 69 | end 70 | end 71 | end 72 | end 73 | end 74 | end 75 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rails/service_name.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Rails 7 | # This cop checks for services and jobs whose name do not start with a verb. 8 | # 9 | # Services and jobs with only one public method should have a name that 10 | # starts with a verb, because these classes are essentially performing 11 | # one action, and the best way to describe an action is with a verb. 12 | # 13 | # @example 14 | # # bad 15 | # class Company 16 | # def perform 17 | # ... 18 | # end 19 | # end 20 | # 21 | # # good 22 | # class ImportCompany 23 | # def perform 24 | # ... 25 | # end 26 | # end 27 | # 28 | # # bad 29 | # class BlogPostPopularityJob < ApplicationJob 30 | # def perform 31 | # ... 32 | # end 33 | # end 34 | # 35 | # # good 36 | # class UpdateBlogPostPopularityJob < ApplicationJob 37 | # def perform 38 | # ... 39 | # end 40 | # end 41 | class ServiceName < Base 42 | include Helpers 43 | 44 | MSG = 'Service or Job name should start with a verb.' 45 | IGNORED_PUBLIC_METHODS = %i[initialize lock_period].freeze 46 | 47 | def_node_matcher :private_section?, <<~PATTERN 48 | (send nil? {:private :protected}) 49 | PATTERN 50 | 51 | def on_class(class_node) 52 | return if public_methods(class_node).length != 1 53 | class_name = class_node.identifier.source.split('::').last 54 | class_name_first_word = class_name.underscore.split('_').first 55 | 56 | add_offense(class_node) if !verb?(class_name_first_word) 57 | end 58 | 59 | private 60 | 61 | def public_methods(class_node) 62 | return [] if !class_node.body 63 | public_methods = [] 64 | 65 | case class_node.body.type 66 | when :def 67 | public_methods << class_node.body 68 | when :begin 69 | class_node.body.children.each do |child| 70 | public_methods << child if child.type == :def 71 | break if private_section?(child) 72 | end 73 | end 74 | 75 | public_methods.reject { |method| IGNORED_PUBLIC_METHODS.include?(method.method_name) } 76 | end 77 | end 78 | end 79 | end 80 | end 81 | end 82 | -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- 1 | plugins: 2 | - rubocop-obsession 3 | - rubocop-performance 4 | - rubocop-rake 5 | - rubocop-rspec 6 | - rubocop-rubycw 7 | - standard-custom 8 | - standard-performance 9 | 10 | require: 11 | - standard 12 | 13 | inherit_gem: 14 | standard: config/base.yml 15 | standard-performance: config/base.yml 16 | standard-custom: config/base.yml 17 | syntax_tree: config/rubocop.yml 18 | 19 | inherit_mode: 20 | merge: 21 | - Exclude 22 | 23 | AllCops: 24 | NewCops: enable 25 | Exclude: 26 | - 'bin/**/*' 27 | - 'tmp/**/*' 28 | - 'vendor/**/*' 29 | 30 | Bundler/OrderedGems: 31 | Enabled: true 32 | 33 | Layout/ArgumentAlignment: 34 | Enabled: false 35 | Layout/EmptyLineBetweenDefs: 36 | AllowAdjacentOneLineDefs: true 37 | Layout/MultilineOperationIndentation: 38 | Enabled: false 39 | Layout/LineLength: 40 | Max: 100 41 | Layout/SpaceInsideHashLiteralBraces: 42 | EnforcedStyle: space 43 | 44 | Lint/NonLocalExitFromIterator: 45 | Enabled: false 46 | 47 | Metrics/ClassLength: 48 | Max: 250 49 | Metrics/MethodLength: 50 | Max: 30 51 | Exclude: 52 | - 'spec/**/*' 53 | Metrics/ModuleLength: 54 | Max: 250 55 | Exclude: 56 | - 'spec/**/*' 57 | Metrics/ParameterLists: 58 | Max: 3 59 | CountKeywordArgs: false 60 | Exclude: 61 | - 'spec/**/*' 62 | 63 | RSpec/AnyInstance: 64 | Enabled: false 65 | RSpec/BeEq: 66 | Enabled: false 67 | RSpec/ContextWording: 68 | Prefixes: 69 | - when 70 | RSpec/DescribedClass: 71 | EnforcedStyle: explicit 72 | RSpec/EmptyLineAfterFinalLet: 73 | Enabled: false 74 | RSpec/ExampleLength: 75 | Max: 30 76 | RSpec/ImplicitExpect: 77 | EnforcedStyle: should 78 | RSpec/ImplicitSubject: 79 | Enabled: false 80 | RSpec/IndexedLet: 81 | Max: 2 82 | RSpec/MatchArray: 83 | Enabled: false 84 | RSpec/MessageChain: 85 | Enabled: false 86 | RSpec/MissingExampleGroupArgument: 87 | Enabled: false 88 | RSpec/MultipleExpectations: 89 | Enabled: false 90 | RSpec/NestedGroups: 91 | Max: 6 92 | RSpec/VerifiedDoubles: 93 | Enabled: false 94 | RSpec/VoidExpect: 95 | Exclude: 96 | - 'spec/support/*' 97 | 98 | Style/ClassMethodsDefinitions: 99 | Enabled: true 100 | Style/CollectionMethods: 101 | Enabled: true 102 | Style/DisableCopsWithinSourceCodeDirective: 103 | Enabled: true 104 | Style/GlobalStdStream: 105 | Enabled: false 106 | Style/GlobalVars: 107 | Enabled: false 108 | Style/RescueStandardError: 109 | EnforcedStyle: explicit 110 | Style/StringLiterals: 111 | EnforcedStyle: single_quotes 112 | Style/StringLiteralsInInterpolation: 113 | EnforcedStyle: single_quotes 114 | Style/UnlessLogicalOperators: 115 | Enabled: true 116 | EnforcedStyle: forbid_logical_operators 117 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rails/short_after_commit.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Rails 7 | # This cop checks for `after_commit` declarations that could be shorter. 8 | # 9 | # @example 10 | # # bad 11 | # after_commit :send_email, on: :create 12 | # 13 | # # good 14 | # after_create_commit :send_email 15 | class ShortAfterCommit < Base 16 | MSG = 'Use shorter %s' 17 | 18 | def_node_matcher :after_commit?, '(send nil? :after_commit ...)' 19 | 20 | def_node_matcher :after_commit_create?, <<~PATTERN 21 | ( 22 | send nil? :after_commit 23 | (sym _) 24 | (hash 25 | (pair (sym :on) {(sym :create)|(array (sym :create))}) 26 | ) 27 | ) 28 | PATTERN 29 | 30 | def_node_matcher :after_commit_update?, <<~PATTERN 31 | ( 32 | send nil? :after_commit 33 | (sym _) 34 | (hash 35 | (pair (sym :on) {(sym :update)|(array (sym :update))}) 36 | ) 37 | ) 38 | PATTERN 39 | 40 | def_node_matcher :after_commit_destroy?, <<~PATTERN 41 | ( 42 | send nil? :after_commit 43 | (sym _) 44 | (hash 45 | (pair (sym :on) {(sym :destroy)|(array (sym :destroy))}) 46 | ) 47 | ) 48 | PATTERN 49 | 50 | def_node_matcher :after_commit_create_update?, <<~PATTERN 51 | ( 52 | send nil? :after_commit 53 | (sym _) 54 | (hash 55 | (pair (sym :on) (array <(sym :create) (sym :update)>)) 56 | ) 57 | ) 58 | PATTERN 59 | 60 | def_node_matcher :after_commit_all_events?, <<~PATTERN 61 | ( 62 | send nil? :after_commit 63 | (sym _) 64 | (hash 65 | (pair (sym :on) (array <(sym :create) (sym :update) (sym :destroy)>)) 66 | ) 67 | ) 68 | PATTERN 69 | 70 | def on_send(node) 71 | return if !after_commit?(node) 72 | 73 | if after_commit_create?(node) 74 | add_offense(node, message: format(MSG, prefer: 'after_create_commit')) 75 | elsif after_commit_update?(node) 76 | add_offense(node, message: format(MSG, prefer: 'after_update_commit')) 77 | elsif after_commit_destroy?(node) 78 | add_offense(node, message: format(MSG, prefer: 'after_destroy_commit')) 79 | elsif after_commit_create_update?(node) 80 | add_offense(node, message: format(MSG, prefer: 'after_save_commit')) 81 | elsif after_commit_all_events?(node) 82 | add_offense(node, message: format(MSG, prefer: 'after_commit with no `on:` argument')) 83 | end 84 | end 85 | end 86 | end 87 | end 88 | end 89 | end 90 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/no_break_or_next.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | # This cop checks for `next` (and sometimes `break`) in loops. 7 | # 8 | # - For big loops, `next` or `break` indicates that the loop body has 9 | # significant logic, which means it should be moved into its own method, 10 | # and you can convert the `next` or `break` into `return` and the like. 11 | # - For small loops, you can just use normal conditions instead of `next`. 12 | # `break` is allowed. 13 | # 14 | # Note: Sometimes loops can also be rethought, like transforming a 15 | # `loop` + `break` into a `while`. 16 | # 17 | # @example 18 | # # bad 19 | # github_teams.each do |github_team| 20 | # next if github_team['size'] == 0 21 | # team = @company.teams.find_or_initialize_by(github_team['id']) 22 | # 23 | # team.update!( 24 | # name: github_team['name'], 25 | # description: github_team['description'], 26 | # owner: @company, 27 | # ) 28 | # end 29 | # 30 | # # good 31 | # github_teams.each do |github_team| { |github_team| upsert_team(github_team) } 32 | # 33 | # def upsert_team(github_team) 34 | # return if github_team['size'] == 0 35 | # team = @company.teams.find_or_initialize_by(github_team['id']) 36 | # 37 | # team.update!( 38 | # name: github_team['name'], 39 | # description: github_team['description'], 40 | # owner: @company, 41 | # ) 42 | # end 43 | # 44 | # # bad 45 | # def highlight 46 | # blog_posts.each do |blog_post| 47 | # next if !blog_post.published? 48 | # 49 | # self.highlighted = true 50 | # end 51 | # end 52 | # 53 | # # good 54 | # def highlight 55 | # blog_posts.each do |blog_post| 56 | # if blog_post.published? 57 | # self.highlighted = true 58 | # end 59 | # end 60 | # end 61 | class NoBreakOrNext < Base 62 | BIG_LOOP_MSG = 63 | 'Avoid `break`/`next` in big loop, decompose into private method or rethink loop.' 64 | NO_NEXT_MSG = 'Avoid `next` in loop, use conditions or rethink loop.' 65 | BIG_LOOP_MIN_LINES = 7 66 | 67 | def_node_matcher :contains_break_or_next?, <<~PATTERN 68 | `(if <({next break}) ...>) 69 | PATTERN 70 | 71 | def_node_matcher :contains_next?, <<~PATTERN 72 | `(if <(next) ...>) 73 | PATTERN 74 | 75 | def on_block(node) 76 | return if !contains_break_or_next?(node) 77 | 78 | if big_loop?(node) 79 | add_offense(node, message: BIG_LOOP_MSG) 80 | elsif contains_next?(node) 81 | add_offense(node, message: NO_NEXT_MSG) 82 | end 83 | end 84 | 85 | private 86 | 87 | def big_loop?(node) 88 | node.line_count >= BIG_LOOP_MIN_LINES + 2 89 | end 90 | end 91 | end 92 | end 93 | end 94 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Rubocop Obsession 2 | 3 | A [RuboCop](https://github.com/rubocop/rubocop) extension that focuses on 4 | higher-level concepts, like checking that code reads from 5 | [top to bottom](lib/rubocop/cop/obsession/method_order.rb), or only unit 6 | testing [public methods](lib/rubocop/cop/obsession/rspec/describe_public_method.rb). 7 | There are some lower-level cops as well. 8 | 9 | Use the provided cops as is, or as inspiration to build custom cops aligned 10 | with your project's best practices. 11 | 12 | ## Installation 13 | 14 | Install the gem: 15 | 16 | ``` 17 | gem install rubocop-obsession 18 | ``` 19 | 20 | Or add this line to your Gemfile: 21 | 22 | ```ruby 23 | gem 'rubocop-obsession', require: false 24 | ``` 25 | 26 | and run `bundle install`. 27 | 28 | ## Usage 29 | 30 | You need to tell Rubocop to load the Obsession extension. There are three ways 31 | to do this: 32 | 33 | ### Rubocop configuration file 34 | 35 | Put this into your `.rubocop.yml`. 36 | 37 | ```yaml 38 | plugins: rubocop-obsession 39 | ``` 40 | 41 | Alternatively, use the following array notation when specifying multiple extensions. 42 | 43 | ```yaml 44 | plugins: 45 | - rubocop-other-extension 46 | - rubocop-obsession 47 | ``` 48 | 49 | Now you can run `rubocop` and it will automatically load the Rubocop Obsession 50 | cops together with the standard cops. 51 | 52 | > [!NOTE] 53 | > The plugin system is supported in RuboCop 1.72+. In earlier versions, use `require` instead of `plugins`. 54 | 55 | ### Command line 56 | 57 | ```bash 58 | rubocop --plugin rubocop-obsession 59 | ``` 60 | 61 | ### Rake task 62 | 63 | ```ruby 64 | RuboCop::RakeTask.new do |task| 65 | task.plugins << 'rubocop-obsession' 66 | end 67 | ``` 68 | 69 | ## The cops 70 | 71 | All cops are located under 72 | [`lib/rubocop/cop/obsession`](lib/rubocop/cop/obsession), and contain examples 73 | and documentation. Their default configuration is defined in 74 | [`config/default.yml`](config/default.yml). 75 | 76 | These cops are opinionated and can feel like too much, that is why some of them 77 | are disabled by default. Do not hesitate to enable or disable them as needed. 78 | 79 | I wrote them to scratch an itch I had at one point or another. Tastes change 80 | with time, and I personally do not use some of them any more, but others might 81 | find them useful. 82 | 83 | ## Development 84 | 85 | After checking out the repo, run `bin/setup` to install dependencies. Then, run 86 | `rake spec` to run the tests. You can also run `bin/console` for an interactive 87 | prompt that will allow you to experiment. 88 | 89 | To install this gem onto your local machine, run `bundle exec rake install`. To 90 | release a new version, update the version number in `version.rb`, and then run 91 | `bundle exec rake release`, which will create a git tag for the version, push 92 | git commits and the created tag, and push the `.gem` file to 93 | [rubygems.org](https://rubygems.org). 94 | 95 | ## Contributing 96 | 97 | Bug reports and pull requests are welcome on GitHub at 98 | https://github.com/jeromedalbert/rubocop-obsession. This project is intended to be a safe, 99 | welcoming space for collaboration, and contributors are expected to adhere to the 100 | [code of conduct](https://github.com/jeromedalbert/rubocop-obsession/blob/main/CODE_OF_CONDUCT.md). 101 | 102 | ## License 103 | 104 | The gem is available as open source under the terms of the 105 | [MIT License](https://opensource.org/licenses/MIT). 106 | 107 | ## Code of Conduct 108 | 109 | Everyone interacting in the Rubocop Obsession project's codebases, issue 110 | trackers, chat rooms and mailing lists is expected to follow the 111 | [code of conduct](https://github.com/jeromedalbert/rubocop-obsession/blob/main/CODE_OF_CONDUCT.md). 112 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | PATH 2 | remote: . 3 | specs: 4 | rubocop-obsession (0.2.3) 5 | activesupport 6 | lint_roller (~> 1.1) 7 | rubocop (~> 1.72) 8 | 9 | GEM 10 | remote: https://rubygems.org/ 11 | specs: 12 | activesupport (7.2.1.1) 13 | base64 14 | bigdecimal 15 | concurrent-ruby (~> 1.0, >= 1.3.1) 16 | connection_pool (>= 2.2.5) 17 | drb 18 | i18n (>= 1.6, < 2) 19 | logger (>= 1.4.2) 20 | minitest (>= 5.1) 21 | securerandom (>= 0.3) 22 | tzinfo (~> 2.0, >= 2.0.5) 23 | ast (2.4.3) 24 | awesome_print (1.9.2) 25 | base64 (0.2.0) 26 | bigdecimal (3.1.8) 27 | concurrent-ruby (1.3.4) 28 | connection_pool (2.4.1) 29 | diff-lcs (1.5.1) 30 | drb (2.2.1) 31 | fuubar (2.5.1) 32 | rspec-core (~> 3.0) 33 | ruby-progressbar (~> 1.4) 34 | i18n (1.14.6) 35 | concurrent-ruby (~> 1.0) 36 | json (2.10.2) 37 | language_server-protocol (3.17.0.4) 38 | lint_roller (1.1.0) 39 | logger (1.6.1) 40 | minitest (5.25.1) 41 | parallel (1.26.3) 42 | parser (3.3.7.2) 43 | ast (~> 2.4.1) 44 | racc 45 | prettier_print (1.2.1) 46 | racc (1.8.1) 47 | rainbow (3.1.1) 48 | rake (13.2.1) 49 | regexp_parser (2.10.0) 50 | rspec (3.13.0) 51 | rspec-core (~> 3.13.0) 52 | rspec-expectations (~> 3.13.0) 53 | rspec-mocks (~> 3.13.0) 54 | rspec-core (3.13.2) 55 | rspec-support (~> 3.13.0) 56 | rspec-expectations (3.13.3) 57 | diff-lcs (>= 1.2.0, < 2.0) 58 | rspec-support (~> 3.13.0) 59 | rspec-its (1.3.0) 60 | rspec-core (>= 3.0.0) 61 | rspec-expectations (>= 3.0.0) 62 | rspec-mocks (3.13.2) 63 | diff-lcs (>= 1.2.0, < 2.0) 64 | rspec-support (~> 3.13.0) 65 | rspec-support (3.13.1) 66 | rubocop (1.73.2) 67 | json (~> 2.3) 68 | language_server-protocol (~> 3.17.0.2) 69 | lint_roller (~> 1.1.0) 70 | parallel (~> 1.10) 71 | parser (>= 3.3.0.2) 72 | rainbow (>= 2.2.2, < 4.0) 73 | regexp_parser (>= 2.9.3, < 3.0) 74 | rubocop-ast (>= 1.38.0, < 2.0) 75 | ruby-progressbar (~> 1.7) 76 | unicode-display_width (>= 2.4.0, < 4.0) 77 | rubocop-ast (1.41.0) 78 | parser (>= 3.3.7.2) 79 | rubocop-performance (1.24.0) 80 | lint_roller (~> 1.1) 81 | rubocop (>= 1.72.1, < 2.0) 82 | rubocop-ast (>= 1.38.0, < 2.0) 83 | rubocop-rake (0.7.1) 84 | lint_roller (~> 1.1) 85 | rubocop (>= 1.72.1) 86 | rubocop-rspec (3.5.0) 87 | lint_roller (~> 1.1) 88 | rubocop (~> 1.72, >= 1.72.1) 89 | rubocop-rubycw (0.2.2) 90 | lint_roller (~> 1.1) 91 | rubocop (~> 1.72, >= 1.72.1) 92 | ruby-progressbar (1.13.0) 93 | securerandom (0.3.1) 94 | standard (1.47.0) 95 | language_server-protocol (~> 3.17.0.2) 96 | lint_roller (~> 1.0) 97 | rubocop (~> 1.73.0) 98 | standard-custom (~> 1.0.0) 99 | standard-performance (~> 1.7) 100 | standard-custom (1.0.2) 101 | lint_roller (~> 1.0) 102 | rubocop (~> 1.50) 103 | standard-performance (1.7.0) 104 | lint_roller (~> 1.1) 105 | rubocop-performance (~> 1.24.0) 106 | syntax_tree (6.2.0) 107 | prettier_print (>= 1.2.0) 108 | tzinfo (2.0.6) 109 | concurrent-ruby (~> 1.0) 110 | unicode-display_width (3.1.4) 111 | unicode-emoji (~> 4.0, >= 4.0.4) 112 | unicode-emoji (4.0.4) 113 | 114 | PLATFORMS 115 | arm64-darwin-24 116 | ruby 117 | 118 | DEPENDENCIES 119 | awesome_print 120 | fuubar 121 | rake 122 | rspec 123 | rspec-its 124 | rubocop 125 | rubocop-obsession! 126 | rubocop-performance 127 | rubocop-rake 128 | rubocop-rspec 129 | rubocop-rubycw 130 | standard 131 | syntax_tree 132 | 133 | BUNDLED WITH 134 | 2.5.13 135 | -------------------------------------------------------------------------------- /spec/rubocop/cop/obsession/method_order_spec.rb: -------------------------------------------------------------------------------- 1 | describe RuboCop::Cop::Obsession::MethodOrder, :config do 2 | context 'when enforced style is drill_down' do 3 | let(:cop_config) { { 'EnforcedStyle' => 'drill_down' } } 4 | 5 | it 'expects private methods to be ordered from top to bottom' do 6 | expect_offense(<<~RUBY) 7 | class Foo 8 | def perform 9 | return if method_a? 10 | method_b 11 | method_c 12 | end 13 | 14 | private 15 | 16 | def method_c; end 17 | def method_b; end 18 | def method_a?; end 19 | ^^^^^^^^^^^^^^^^^^ Method `method_a?` should appear below `private`. 20 | end 21 | RUBY 22 | 23 | expect_correction(<<~RUBY) 24 | class Foo 25 | def perform 26 | return if method_a? 27 | method_b 28 | method_c 29 | end 30 | 31 | private 32 | 33 | def method_a?; end 34 | def method_b; end 35 | def method_c; end 36 | end 37 | RUBY 38 | end 39 | 40 | it 'expects methods called by multiple methods to be below the first caller' do 41 | expect_offense(<<~RUBY) 42 | class Foo 43 | def perform 44 | method_a 45 | method_b 46 | end 47 | 48 | private 49 | 50 | def method_a; method_c; end 51 | def method_b; method_c; end 52 | def method_c; end 53 | ^^^^^^^^^^^^^^^^^ Method `method_c` should appear below `method_a`. 54 | end 55 | RUBY 56 | 57 | expect_correction(<<~RUBY) 58 | class Foo 59 | def perform 60 | method_a 61 | method_b 62 | end 63 | 64 | private 65 | 66 | def method_a; method_c; end 67 | def method_c; end 68 | def method_b; method_c; end 69 | end 70 | RUBY 71 | end 72 | end 73 | 74 | context 'when enforced style is step_down' do 75 | let(:cop_config) { { 'EnforcedStyle' => 'step_down' } } 76 | 77 | it 'expects methods called by multiple methods to be below all of them' do 78 | expect_offense(<<~RUBY) 79 | class Foo 80 | def perform 81 | method_a 82 | method_b 83 | end 84 | 85 | private 86 | 87 | def method_a; method_c; end 88 | def method_c; end 89 | def method_b; method_c; end 90 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Method `method_b` should appear below `method_a`. 91 | end 92 | RUBY 93 | 94 | expect_correction(<<~RUBY) 95 | class Foo 96 | def perform 97 | method_a 98 | method_b 99 | end 100 | 101 | private 102 | 103 | def method_a; method_c; end 104 | def method_b; method_c; end 105 | def method_c; end 106 | end 107 | RUBY 108 | end 109 | end 110 | 111 | context 'when enforced style is alphabetical' do 112 | let(:cop_config) { { 'EnforcedStyle' => 'alphabetical' } } 113 | 114 | it 'expects private methods to be ordered alphabetically' do 115 | expect_offense(<<~RUBY) 116 | class Foo 117 | def perform; end 118 | 119 | private 120 | 121 | def method_c; end 122 | def method_b; end 123 | def method_b_a; end 124 | def method_a; end 125 | ^^^^^^^^^^^^^^^^^ Method `method_a` should appear below `private`. 126 | end 127 | RUBY 128 | 129 | expect_correction(<<~RUBY) 130 | class Foo 131 | def perform; end 132 | 133 | private 134 | 135 | def method_a; end 136 | def method_b; end 137 | def method_b_a; end 138 | def method_c; end 139 | end 140 | RUBY 141 | end 142 | end 143 | end 144 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/rspec/describe_public_method.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | module Rspec 7 | # This cop checks for `describe` blocks that test private methods. 8 | # 9 | # If you are doing black box unit testing, it means that you are only 10 | # interested in testing external behavior, a.k.a public interface, 11 | # a.k.a public methods. Private methods are considered implementation 12 | # details and are not directly tested. 13 | # 14 | # If you need to test a Rails callback, test it indirectly through its 15 | # corresponding Rails public method, e.g. #create, #save, etc. 16 | # 17 | # @example 18 | # class Comment < ApplicationRecord 19 | # after_create_commit :notify_users 20 | # 21 | # private 22 | # 23 | # def notify_users 24 | # ... 25 | # end 26 | # end 27 | # 28 | # # bad 29 | # describe '#notify_users' do 30 | # ... 31 | # end 32 | # 33 | # # good 34 | # describe '#create' do 35 | # it 'notifies users' do 36 | # ... 37 | # end 38 | # end 39 | class DescribePublicMethod < Base 40 | MSG = 'Only test public methods.' 41 | 42 | def_node_matcher :on_context_method, <<-PATTERN 43 | (block (send nil? :describe (str $#method_name?)) ...) 44 | PATTERN 45 | 46 | def_node_search :class_nodes, <<~PATTERN 47 | (class ...) 48 | PATTERN 49 | 50 | def_node_matcher :private_section?, <<~PATTERN 51 | (send nil? {:private :protected}) 52 | PATTERN 53 | 54 | def on_block(node) 55 | on_context_method(node) do |method_name| 56 | method_name = method_name.sub('#', '').to_sym 57 | add_offense(node) if private_methods.include?(method_name) 58 | end 59 | end 60 | 61 | private 62 | 63 | def method_name?(description) 64 | description.start_with?('#') 65 | end 66 | 67 | def private_methods 68 | return @private_methods if @private_methods 69 | @private_methods = [] 70 | 71 | if File.exist?(tested_file_path) 72 | node = parse_file(tested_file_path) 73 | @private_methods = find_private_methods(class_nodes(node).first) 74 | end 75 | 76 | @private_methods 77 | end 78 | 79 | def tested_file_path 80 | return @tested_file_path if @tested_file_path 81 | 82 | spec_path = processed_source.file_path.sub(Dir.pwd, '') 83 | file_path = 84 | if spec_path.include?('/lib/') 85 | spec_path.sub('/spec/lib/', '/lib/') 86 | else 87 | spec_path.sub('/spec/', '/app/') 88 | end 89 | file_path = file_path.sub('_spec.rb', '.rb') 90 | file_path = File.join(Dir.pwd, file_path) 91 | 92 | @tested_file_path = file_path 93 | end 94 | 95 | def parse_file(file_path) 96 | parse(File.read(file_path)).ast 97 | end 98 | 99 | def find_private_methods(class_node) 100 | return [] if class_node&.body&.type != :begin 101 | private_methods = [] 102 | private_section_found = false 103 | 104 | class_node.body.children.each do |child| 105 | if private_section?(child) 106 | private_section_found = true 107 | elsif child.type == :def && private_section_found 108 | private_methods << child.method_name 109 | end 110 | end 111 | 112 | private_methods 113 | end 114 | end 115 | end 116 | end 117 | end 118 | end 119 | -------------------------------------------------------------------------------- /config/default.yml: -------------------------------------------------------------------------------- 1 | Obsession/MethodOrder: 2 | Enabled: true 3 | EnforcedStyle: drill_down 4 | SupportedStyles: 5 | - drill_down 6 | - step_down 7 | - alphabetical 8 | Obsession/NoBreakOrNext: 9 | Enabled: false 10 | Exclude: 11 | - 'script/**/*' 12 | Obsession/NoParagraphs: 13 | Enabled: false 14 | Exclude: 15 | - 'db/migrate/*' 16 | - 'spec/**/*' 17 | Obsession/NoTodos: 18 | Enabled: false 19 | Obsession/TooManyParagraphs: 20 | Enabled: false 21 | Exclude: 22 | - 'db/migrate/*' 23 | - 'script/**/*' 24 | - 'spec/**/*' 25 | 26 | Obsession/Graphql/MutationName: 27 | Enabled: true 28 | Include: 29 | - 'app/graphql/mutations/**/*' 30 | 31 | Obsession/Rspec/DescribePublicMethod: 32 | Enabled: true 33 | Include: 34 | - 'spec/**/*_spec.rb' 35 | # This can be uncommented if you have rubocop-rspec as a gem dependency. 36 | # Obsession/Rspec/EmptyLineAfterFinalLet: 37 | # Enabled: true 38 | # Include: 39 | # - 'spec/**/*' 40 | 41 | Obsession/Rails/CallbackOneMethod: 42 | Enabled: true 43 | Include: 44 | - 'app/models/**/*' 45 | - 'app/controllers/**/*' 46 | Obsession/Rails/FullyDefinedJsonField: 47 | Enabled: true 48 | Include: 49 | - 'db/migrate/*' 50 | Obsession/Rails/MigrationBelongsTo: 51 | Enabled: true 52 | Include: 53 | - 'db/migrate/*' 54 | Obsession/Rails/NoCallbackConditions: 55 | Enabled: true 56 | Include: 57 | - 'app/models/**/*' 58 | Obsession/Rails/PrivateCallback: 59 | Enabled: true 60 | Include: 61 | - 'app/models/**/*' 62 | - 'app/controllers/**/*' 63 | Obsession/Rails/SafetyAssuredComment: 64 | Enabled: false 65 | Include: 66 | - 'db/migrate/*' 67 | Obsession/Rails/ServiceName: 68 | Enabled: true 69 | Include: 70 | - 'app/services/**/*' 71 | - 'app/jobs/**/*' 72 | Exclude: 73 | - 'app/jobs/application_job.rb' 74 | Obsession/Rails/ServicePerformMethod: 75 | Enabled: true 76 | Include: 77 | - 'app/services/**/*' 78 | Obsession/Rails/ShortAfterCommit: 79 | Enabled: true 80 | Include: 81 | - 'app/models/**/*' 82 | Obsession/Rails/ShortValidate: 83 | Enabled: true 84 | Include: 85 | - 'app/models/**/*' 86 | Obsession/Rails/ValidateOneField: 87 | Enabled: true 88 | Include: 89 | - 'app/models/**/*' 90 | Obsession/Rails/ValidationMethodName: 91 | Enabled: true 92 | Include: 93 | - 'app/models/**/*' 94 | 95 | Layout/ClassStructure: 96 | Enabled: true 97 | AutoCorrect: false 98 | Categories: 99 | module_inclusion: 100 | - include 101 | - prepend 102 | - extend 103 | attributes: 104 | - attribute 105 | - attr_reader 106 | - attr_writer 107 | - attr_accessor 108 | - alias_attribute 109 | - delegate 110 | - enum 111 | associations: 112 | - belongs_to 113 | - has_one 114 | - has_many 115 | - has_and_belongs_to_many 116 | validations: 117 | - validates 118 | - validate 119 | - validates_with 120 | callbacks: 121 | - before_validation 122 | - before_save 123 | - before_create 124 | - before_destroy 125 | - after_initialize 126 | - after_create 127 | - after_save 128 | - after_destroy 129 | - after_commit 130 | - after_create_commit 131 | - after_update_commit 132 | - after_destroy_commit 133 | - around_create 134 | other_macros: 135 | - acts_as_paranoid 136 | - audited 137 | - devise 138 | - has_paper_trail 139 | - serialize 140 | scopes: 141 | - default_scope 142 | - scope 143 | controller_actions: 144 | - before_action 145 | - skip_before_action 146 | controller_rescue: 147 | - rescue_from 148 | ExpectedOrder: 149 | - module_inclusion 150 | - constants 151 | - attributes 152 | - enums 153 | - associations 154 | - validations 155 | - callbacks 156 | - other_macros 157 | - scopes 158 | - controller_macros 159 | - controller_actions 160 | - controller_action_caching 161 | - controller_rescue 162 | - class_methods 163 | - initializer 164 | - public_methods 165 | - protected_methods 166 | - private_methods 167 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/method_order.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RuboCop 4 | module Cop 5 | module Obsession 6 | # This cop checks for private/protected methods that are not ordered 7 | # correctly. It supports autocorrect. 8 | # 9 | # Note 1: the order of public methods is not enforced. They can be 10 | # defined in any order the developer wants, like by order of importance. 11 | # This is because public methods are usually called outside of the class 12 | # and often not called within the class at all. If possible though, 13 | # developers should still try to order their public methods when it makes 14 | # sense. 15 | # 16 | # Note 2: for top to bottom styles, method order cannot be computed for 17 | # methods called by `send`, metaprogramming, private methods called by 18 | # superclasses or modules, etc. This cop's suggestions and 19 | # autocorrections may be slightly off for these cases. 20 | # 21 | # Note 3: for simplicity, protected methods do not have to be ordered if 22 | # there are both a protected section and a private section. 23 | # 24 | # @example EnforcedStyle: drill_down (default) 25 | # In this style, code should read from top to bottom. More 26 | # particularly, methods should be defined in the same order as the 27 | # order when they are first mentioned. Put another way, you go to the 28 | # bottom of the method call tree before going back up. See examples 29 | # below. 30 | # 31 | # This style is similar to the code example provided in the "Reading 32 | # Code from Top to Bottom: The Stepdown Rule" chapter from Robert C. 33 | # Martin's "Clean Code" book, but diverges from it in that it drills 34 | # down to the bottom of the call tree as much as possible. 35 | # 36 | # # bad 37 | # class Foo 38 | # def perform 39 | # return if method_a? 40 | # method_b 41 | # method_c 42 | # end 43 | # 44 | # private 45 | # 46 | # def method_c; ...; end 47 | # def method_b; ...; end 48 | # def method_a?; ...; end 49 | # end 50 | # 51 | # # good 52 | # class Foo 53 | # def perform 54 | # return if method_a? 55 | # method_b 56 | # method_c 57 | # end 58 | # 59 | # private 60 | # 61 | # def method_a?; ...; end 62 | # def method_b; ...; end 63 | # def method_c; ...; end 64 | # end 65 | # 66 | # # bad 67 | # class Foo 68 | # def perform 69 | # method_a 70 | # method_b 71 | # end 72 | # 73 | # private 74 | # 75 | # def method_a; method_c; end 76 | # def method_b; method_c; end 77 | # def method_c; ...; end 78 | # end 79 | # 80 | # # good 81 | # class Foo 82 | # def perform 83 | # method_a 84 | # method_b 85 | # end 86 | # 87 | # private 88 | # 89 | # def method_a; method_c; end 90 | # def method_c; ...; end 91 | # def method_b; method_c; end 92 | # end 93 | # 94 | # @example EnforcedStyle: step_down 95 | # In this style, code should read from top to bottom. More 96 | # particularly, common called methods (which tend to have a lower level 97 | # of abstraction) are defined after the group of methods that calls 98 | # them (these caller methods tend to have a higher level of 99 | # abstraction). The idea is to gradually descend one level of 100 | # abstraction at a time. 101 | # 102 | # This style adheres more strictly to the code example provided in the 103 | # "Reading Code from Top to Bottom: The Stepdown Rule" chapter from 104 | # Robert C. Martin's "Clean Code" book. 105 | # 106 | # # bad 107 | # class Foo 108 | # def perform 109 | # method_a 110 | # method_b 111 | # end 112 | # 113 | # private 114 | # 115 | # def method_a; method_c; end 116 | # def method_c; ...; end 117 | # def method_b; method_c; end 118 | # end 119 | # 120 | # # good 121 | # class Foo 122 | # def perform 123 | # method_a 124 | # method_b 125 | # end 126 | # 127 | # private 128 | # 129 | # def method_a; method_c; end 130 | # def method_b; method_c; end 131 | # def method_c; ...; end 132 | # end 133 | # 134 | # @example EnforcedStyle: alphabetical 135 | # In this style, methods are ordered alphabetically. This style is 136 | # unambiguous and interpretation-free. 137 | # 138 | # # bad 139 | # class Foo 140 | # def perform; ...; end 141 | # 142 | # private 143 | # 144 | # def method_c; ...; end 145 | # def method_b; ...; end 146 | # def method_a; ...; end 147 | # end 148 | # 149 | # # good 150 | # class Foo 151 | # def perform; ...; end 152 | # 153 | # private 154 | # 155 | # def method_a; ...; end 156 | # def method_b; ...; end 157 | # def method_c; ...; end 158 | # end 159 | class MethodOrder < Base 160 | include ConfigurableEnforcedStyle 161 | include Helpers 162 | include CommentsHelp 163 | include VisibilityHelp 164 | extend AutoCorrector 165 | 166 | MSG = 'Method `%s` should appear below `%s`.' 167 | 168 | def_node_search :private_nodes, <<~PATTERN 169 | (send nil? {:private :protected}) 170 | PATTERN 171 | 172 | def_node_matcher :on_callback, <<~PATTERN 173 | (send nil? $_ (sym $_) ...) 174 | PATTERN 175 | 176 | def_node_search :method_calls, <<~PATTERN 177 | (send nil? $_ ...) 178 | PATTERN 179 | 180 | class Node 181 | attr_accessor :value, :children 182 | 183 | def initialize(value:, children: []) 184 | @value = value 185 | @children = children 186 | end 187 | end 188 | 189 | def on_class(class_node) 190 | @class_node = class_node 191 | find_private_node || return 192 | build_methods || return 193 | 194 | build_ordered_private_methods 195 | build_private_methods 196 | 197 | verify_private_methods_order 198 | end 199 | 200 | private 201 | 202 | def find_private_node 203 | private_nodes = private_nodes(@class_node).to_a 204 | return nil if private_nodes.empty? 205 | 206 | visibilities = private_nodes.map(&:method_name) 207 | @ignore_protected = visibilities.include?(:protected) && visibilities.include?(:private) 208 | 209 | @private_node = private_nodes.find { |node| !ignore_visibility?(node.method_name) } 210 | end 211 | 212 | def ignore_visibility?(visibility) 213 | case visibility 214 | when :public 215 | true 216 | when :protected 217 | @ignore_protected 218 | when :private 219 | false 220 | end 221 | end 222 | 223 | def build_methods 224 | @methods = {} 225 | return false if @class_node&.body&.type != :begin 226 | 227 | @class_node.body.children.each do |child| 228 | @methods[child.method_name] = child if child.type == :def 229 | end 230 | 231 | @methods.any? 232 | end 233 | 234 | def build_ordered_private_methods 235 | if style == :alphabetical 236 | @ordered_private_methods = alphabetically_ordered_private_methods 237 | else 238 | build_callback_methods 239 | build_method_call_tree 240 | @ordered_private_methods = top_to_bottom_ordered_private_methods(@method_call_tree) 241 | end 242 | end 243 | 244 | def alphabetically_ordered_private_methods 245 | @methods 246 | .values 247 | .uniq 248 | .reject { |method| ignore_visibility?(node_visibility(method)) } 249 | .map(&:method_name) 250 | .sort 251 | end 252 | 253 | def build_callback_methods 254 | @callback_methods = [] 255 | 256 | @class_node.body.children.each do |node| 257 | on_callback(node) do |callback, method_name| 258 | if rails_callback?(callback.to_s) && @methods[method_name] 259 | @callback_methods << @methods[method_name] 260 | end 261 | end 262 | end 263 | end 264 | 265 | def build_method_call_tree 266 | methods = (@callback_methods + @methods.values).uniq 267 | 268 | @method_call_tree = 269 | Node.new(value: nil, children: methods.map { |method| method_call_tree(method) }) 270 | end 271 | 272 | def method_call_tree(method_node, seen_method_calls = Set.new) 273 | method_name = method_node.method_name 274 | return nil if seen_method_calls.include?(method_name) 275 | called_methods = find_called_methods(method_node) 276 | return Node.new(value: method_node, children: []) if called_methods.empty? 277 | 278 | children = 279 | called_methods.filter_map do |called_method| 280 | method_call_tree(called_method, seen_method_calls + [method_name]) 281 | end 282 | 283 | Node.new(value: method_node, children: children) 284 | end 285 | 286 | def find_called_methods(method_node) 287 | called_methods = 288 | method_calls(method_node).filter_map { |method_call| @methods[method_call] } 289 | 290 | @called_methods ||= Set.new(@callback_methods) 291 | @called_methods += called_methods 292 | 293 | called_methods 294 | end 295 | 296 | def top_to_bottom_ordered_private_methods(node) 297 | ast_node = node.value 298 | method_name = should_ignore?(ast_node) ? nil : ast_node.method_name 299 | next_names = 300 | node.children.flat_map { |child| top_to_bottom_ordered_private_methods(child) } 301 | 302 | common_methods = 303 | (style == :drill_down) ? [] : next_names.tally.select { |_, size| size > 1 }.keys 304 | unique_methods = next_names - common_methods 305 | 306 | ([method_name] + unique_methods + common_methods).compact.uniq 307 | end 308 | 309 | def should_ignore?(ast_node) 310 | ast_node.nil? || ignore_visibility?(node_visibility(ast_node)) || 311 | !@called_methods.include?(ast_node) 312 | end 313 | 314 | def build_private_methods 315 | @private_methods = @methods.keys.intersection(@ordered_private_methods) 316 | end 317 | 318 | def verify_private_methods_order 319 | @ordered_private_methods.each_with_index do |ordered_method, ordered_index| 320 | index = @private_methods.index(ordered_method) 321 | 322 | add_method_offense(ordered_method, ordered_index) && return if index != ordered_index 323 | end 324 | end 325 | 326 | def add_method_offense(method_name, method_index) 327 | method = @methods[method_name] 328 | previous_method = 329 | if method_index > 0 330 | previous_method_name = @ordered_private_methods[method_index - 1] 331 | @methods[previous_method_name] 332 | else 333 | @private_node 334 | end 335 | 336 | message = format(MSG, previous: previous_method.method_name, after: method_name) 337 | 338 | add_offense(method, message: message) do |corrector| 339 | autocorrect(corrector, method, previous_method) 340 | end 341 | end 342 | 343 | def autocorrect(corrector, method, previous_method) 344 | previous_method_range = source_range_with_comment(previous_method) 345 | if buffer.source[previous_method_range.end_pos + 1] == "\n" 346 | previous_method_range = previous_method_range.adjust(end_pos: 1) 347 | end 348 | 349 | method_range = source_range_with_signature(method) 350 | if buffer.source[method_range.begin_pos - 1] == "\n" 351 | method_range = method_range.adjust(end_pos: 1) 352 | end 353 | 354 | corrector.insert_after(previous_method_range, method_range.source) 355 | corrector.remove(method_range) 356 | end 357 | 358 | def source_range_with_signature(method) 359 | previous_node = method.left_sibling 360 | begin_node = sorbet_signature?(previous_node) ? previous_node : method 361 | 362 | begin_pos = begin_pos_with_comment(begin_node) 363 | end_pos = end_position_for(method) 364 | 365 | Parser::Source::Range.new(buffer, begin_pos, end_pos) 366 | end 367 | 368 | def sorbet_signature?(node) 369 | node&.respond_to?(:method_name) && node.method_name == :sig && node.type == :block 370 | end 371 | end 372 | end 373 | end 374 | end 375 | -------------------------------------------------------------------------------- /lib/rubocop/cop/obsession/mixin/files/verbs.txt: -------------------------------------------------------------------------------- 1 | abandon 2 | abase 3 | abash 4 | abate 5 | abbreviate 6 | abdicate 7 | abduct 8 | abet 9 | abhor 10 | abide 11 | abirritate 12 | abjure 13 | ablate 14 | abnegate 15 | abolish 16 | abominate 17 | abort 18 | abound 19 | about-ship 20 | about-turn 21 | aboutface 22 | abrade 23 | abreact 24 | abridge 25 | abrogate 26 | abscess 27 | abscise 28 | abscond 29 | abseil 30 | absent 31 | absolve 32 | absorb 33 | absquatulate 34 | abstain 35 | abstract 36 | abuse 37 | abut 38 | abye 39 | accede 40 | accelerate 41 | accent 42 | accentuate 43 | accept 44 | access 45 | accession 46 | acclaim 47 | acclimatize 48 | accommodate 49 | accompany 50 | accomplish 51 | accord 52 | accost 53 | account 54 | accoutre 55 | accredit 56 | accrete 57 | accrue 58 | acculturate 59 | accumulate 60 | accuse 61 | accustom 62 | acerbate 63 | acetify 64 | acetylate 65 | ache 66 | achieve 67 | achromatize 68 | acidify 69 | acidulate 70 | acierate 71 | acknowledge 72 | acquaint 73 | acquiesce 74 | acquire 75 | acquit 76 | act 77 | activate 78 | actualize 79 | actuate 80 | acuminate 81 | adapt 82 | add 83 | addict 84 | addle 85 | address 86 | adduce 87 | adduct 88 | adhere 89 | adhibit 90 | adjoin 91 | adjourn 92 | adjudge 93 | adjudicate 94 | adjure 95 | adjust 96 | adlib 97 | admeasure 98 | administer 99 | administrate 100 | admire 101 | admit 102 | admix 103 | admonish 104 | adopt 105 | adore 106 | adorn 107 | adsorb 108 | adulate 109 | adulterate 110 | adumbrate 111 | advance 112 | advantage 113 | adventure 114 | advert 115 | advertize 116 | advise 117 | advocate 118 | aerate 119 | aerify 120 | aestivate 121 | affect 122 | affiance 123 | affiliate 124 | affirm 125 | affix 126 | afflict 127 | afford 128 | afforest 129 | affranchise 130 | affray 131 | affright 132 | affront 133 | africanize 134 | afrikanerize 135 | age 136 | agglomerate 137 | agglutinate 138 | aggrade 139 | aggrandize 140 | aggravate 141 | aggregate 142 | aggress 143 | aggrieve 144 | agist 145 | agitate 146 | agonize 147 | agree 148 | aid 149 | ail 150 | aim 151 | air 152 | aircondition 153 | aircool 154 | airdrop 155 | airdry 156 | airlift 157 | airmail 158 | alarm 159 | albumenize 160 | alchemize 161 | alcoholize 162 | alert 163 | alibi 164 | alien 165 | alienate 166 | alight 167 | aliment 168 | aline 169 | alit 170 | alkalify 171 | alkalize 172 | allay 173 | allege 174 | allegorize 175 | alleviate 176 | alliterate 177 | allocate 178 | allot 179 | allow 180 | allowance 181 | alloy 182 | allude 183 | allure 184 | ally 185 | alphabetize 186 | alter 187 | altercate 188 | alternate 189 | aluminize 190 | amalgamate 191 | amass 192 | amaze 193 | amble 194 | ambulate 195 | ambuscade 196 | ambush 197 | ameliorate 198 | amend 199 | amerce 200 | americanize 201 | ammoniate 202 | ammonify 203 | amnesty 204 | amortize 205 | amount 206 | amplify 207 | amputate 208 | amuse 209 | anagrammatize 210 | analogize 211 | analyze 212 | anastomose 213 | anathematize 214 | anatomize 215 | anchor 216 | anele 217 | anesthetize 218 | anger 219 | angle 220 | angle-park 221 | anglicize 222 | anglify 223 | anguish 224 | angulate 225 | animadvert 226 | animalize 227 | animate 228 | ankylose 229 | anneal 230 | annex 231 | annihilate 232 | annotate 233 | announce 234 | annoy 235 | annualize 236 | annul 237 | annunciate 238 | anodize 239 | anoint 240 | answer 241 | antagonize 242 | ante 243 | antecede 244 | antedate 245 | antevert 246 | anthologize 247 | anthropomorphize 248 | anticipate 249 | antiquate 250 | antique 251 | ape 252 | aphorize 253 | apocopate 254 | apologize 255 | apostatize 256 | apostrophize 257 | apotheosize 258 | appall 259 | appeal 260 | appear 261 | appease 262 | append 263 | apperceive 264 | appertain 265 | applaud 266 | appliqu_e 267 | apply 268 | appoint 269 | apportion 270 | appose 271 | appraise 272 | appreciate 273 | apprehend 274 | apprentice 275 | apprize 276 | approach 277 | approbate 278 | appropriate 279 | approve 280 | approximate 281 | apron 282 | aquaplane 283 | aquatint 284 | arbitrate 285 | arc 286 | arch 287 | archaize 288 | argue 289 | argufy 290 | arise 291 | arm 292 | armour 293 | aromatize 294 | arouse 295 | arraign 296 | arrange 297 | array 298 | arrest 299 | arrive 300 | arrogate 301 | arterialize 302 | article 303 | articulate 304 | artificialize 305 | aryanize 306 | ascend 307 | ascertain 308 | ascribe 309 | ask 310 | asperse 311 | asphalt 312 | asphyxiate 313 | aspirate 314 | aspire 315 | assail 316 | assassinate 317 | assault 318 | assay 319 | assemble 320 | assent 321 | assert 322 | assess 323 | asseverate 324 | assibilate 325 | assign 326 | assimilate 327 | assist 328 | associate 329 | assoil 330 | assort 331 | assuage 332 | assume 333 | assure 334 | asterisk 335 | astonish 336 | astound 337 | astrict 338 | atomize 339 | atone 340 | atrophy 341 | attach 342 | attack 343 | attain 344 | attaint 345 | attemper 346 | attempt 347 | attend 348 | attenuate 349 | attest 350 | attire 351 | attitudinize 352 | attorn 353 | attract 354 | attribute 355 | attune 356 | auction 357 | auctioneer 358 | audit 359 | audition 360 | augment 361 | augur 362 | auscultate 363 | auspicate 364 | australianize 365 | authenticate 366 | authorize 367 | autoclave 368 | autograph 369 | autolyze 370 | automate 371 | automatize 372 | autotomize 373 | avail 374 | avalanche 375 | avenge 376 | aver 377 | average 378 | avert 379 | aviate 380 | avoid 381 | avouch 382 | avow 383 | await 384 | awake 385 | awaken 386 | award 387 | awe 388 | axe 389 | azotize 390 | baa 391 | babbitt 392 | babble 393 | baby 394 | babysit 395 | back 396 | backbite 397 | backcomb 398 | backcross 399 | backdate 400 | backfill 401 | backfire 402 | backhand 403 | backpedal 404 | backslide 405 | backspace 406 | backstitch 407 | backstroke 408 | backtrack 409 | backwash 410 | backwater 411 | badger 412 | badmouth 413 | baffle 414 | bag 415 | bail 416 | bait 417 | baize 418 | bake 419 | baksheesh 420 | balance 421 | bale 422 | balkanize 423 | ball 424 | ballast 425 | balloon 426 | ballot 427 | ballyhoo 428 | ballyrag 429 | bamboozle 430 | ban 431 | band 432 | bandage 433 | bandy 434 | bang 435 | banish 436 | bankroll 437 | bankrupt 438 | banquet 439 | bant 440 | banter 441 | baptize 442 | bar 443 | barbarize 444 | barber 445 | barde 446 | bare 447 | bargain 448 | barge 449 | bark 450 | barnstorm 451 | barr_e 452 | barrack 453 | barrage 454 | barrel 455 | barrel-roll 456 | barricade 457 | barter 458 | base 459 | bash 460 | basify 461 | bask 462 | basset 463 | bastardize 464 | baste 465 | bastinado 466 | bat 467 | batch 468 | bate 469 | batfowl 470 | bath 471 | bathe 472 | batten 473 | batter 474 | battle 475 | battledore 476 | baulk 477 | bawl 478 | bay 479 | bayonet 480 | be 481 | beach 482 | beacon 483 | bead 484 | beagle 485 | beam 486 | bear 487 | beard 488 | beat 489 | beatify 490 | beautify 491 | beaver 492 | bechance 493 | beckon 494 | becloud 495 | become 496 | bed 497 | bedaub 498 | bedazzle 499 | bedeck 500 | bedevil 501 | bedew 502 | bedight 503 | bedim 504 | bedizen 505 | bedraggle 506 | beef 507 | beep 508 | beeswax 509 | beetle 510 | befall 511 | befit 512 | befog 513 | befool 514 | befoul 515 | befriend 516 | befuddle 517 | beg 518 | beget 519 | beggar 520 | begin 521 | begird 522 | begrime 523 | begrudge 524 | beguile 525 | behave 526 | behead 527 | behold 528 | behove 529 | bejewel 530 | belabour 531 | belay 532 | belch 533 | beleaguer 534 | belie 535 | believe 536 | belittle 537 | bell 538 | bellow 539 | belly 540 | belly-laugh 541 | bellyache 542 | bellyache 543 | bellyland 544 | belong 545 | belt 546 | bemean 547 | bemire 548 | bemoan 549 | bemuse 550 | bename 551 | bench 552 | bend 553 | benefice 554 | benefit 555 | benumb 556 | bequeath 557 | berate 558 | bereave 559 | bereft 560 | berry 561 | berth 562 | beseech 563 | beseem 564 | beset 565 | beshrew 566 | besiege 567 | besmear 568 | besmirch 569 | bespangle 570 | bespatter 571 | bespeak 572 | bespread 573 | besprinkle 574 | best 575 | besteaded 576 | bestialize 577 | bestir 578 | bestow 579 | bestrew 580 | bestride 581 | bet 582 | betake 583 | bethink 584 | betide 585 | betoken 586 | betray 587 | betroth 588 | better 589 | bewail 590 | beware 591 | bewilder 592 | bewitch 593 | bewray 594 | bias 595 | bicker 596 | bicycle 597 | bid 598 | bide 599 | biff 600 | bifurcate 601 | big-note 602 | bight 603 | bike 604 | bilge 605 | bilk 606 | bill 607 | billet 608 | bin 609 | bioassay 610 | birch 611 | bird's-nest 612 | birddog 613 | birdlime 614 | birdy 615 | birl 616 | birr 617 | birth 618 | bisect 619 | bit 620 | bitch 621 | bite 622 | bitter 623 | bituminize 624 | bivouac 625 | blab 626 | blabber 627 | black-lead 628 | blackball 629 | blackbird 630 | blacken 631 | blackguard 632 | blackjack 633 | blackleg 634 | blacklist 635 | blackmail 636 | blackmarket 637 | blackout 638 | blah 639 | blame 640 | blanch 641 | blandish 642 | blank 643 | blanket 644 | blare 645 | blarney 646 | blaspheme 647 | blast 648 | blat 649 | blather 650 | blaze 651 | blazon 652 | bleach 653 | blear 654 | bleat 655 | bleed 656 | bleep 657 | blemish 658 | blench 659 | blend 660 | blent 661 | bless 662 | blest 663 | blether 664 | blight 665 | blind 666 | blindfold 667 | blink 668 | blip 669 | blister 670 | blitz 671 | bloat 672 | blob 673 | block 674 | blockade 675 | blood 676 | bloody 677 | bloom 678 | blossom 679 | blot 680 | blotch 681 | blouse 682 | blow 683 | blow-wave 684 | blowdry 685 | blub 686 | blubber 687 | bludge 688 | bludgeon 689 | blue 690 | bluepencil 691 | blueprint 692 | bluff 693 | blunder 694 | blunge 695 | blunt 696 | blur 697 | blurt 698 | blush 699 | bluster 700 | board 701 | boast 702 | boat 703 | bob 704 | bobol 705 | bobsleigh 706 | bode 707 | bodge 708 | body 709 | bodycheck 710 | boggle 711 | bogie 712 | boil 713 | bolster 714 | bomb 715 | bombard 716 | bond 717 | bone 718 | bong 719 | boo 720 | boob 721 | booby-trap 722 | boodle 723 | boogie 724 | boohoo 725 | book 726 | boom 727 | boomerang 728 | boondoggle 729 | boost 730 | boot 731 | bootleg 732 | bootlick 733 | booze 734 | bop 735 | borate 736 | border 737 | bore 738 | borrow 739 | bosom 740 | boss 741 | botanize 742 | botch 743 | bother 744 | bottle 745 | bottlefeed 746 | bottleneck 747 | bottom 748 | boult 749 | bounce 750 | bound 751 | bound 752 | bow 753 | bowdlerize 754 | bowl 755 | bowse 756 | bowwow 757 | box 758 | boxhaul 759 | boycott 760 | brabble 761 | brace 762 | brachiate 763 | bracket 764 | brag 765 | brail 766 | braille 767 | brain 768 | brainwash 769 | braise 770 | brake 771 | bramble 772 | branch 773 | brand 774 | brandish 775 | brattice 776 | brave 777 | brawl 778 | bray 779 | braze 780 | brazen 781 | breach 782 | bread 783 | break 784 | breakaway 785 | breakfast 786 | bream 787 | breast 788 | breastfeed 789 | breathalyze 790 | breathe 791 | brede 792 | breech 793 | breed 794 | breeze 795 | brevet 796 | brew 797 | brey 798 | bribe 799 | brick 800 | bridge 801 | bridle 802 | brief 803 | brigade 804 | brighten 805 | brim 806 | brine 807 | bring 808 | briquette 809 | bristle 810 | broach 811 | broadcast 812 | broaden 813 | brocade 814 | broddle 815 | broider 816 | broil 817 | bromate 818 | brominate 819 | bronze 820 | brood 821 | brook 822 | browbeat 823 | brown 824 | browse 825 | bruise 826 | bruit 827 | brush 828 | brutalize 829 | brutify 830 | bubble 831 | buck 832 | bucket 833 | buckle 834 | buckler 835 | buckram 836 | bud 837 | buddle 838 | budge 839 | budget 840 | buffalo 841 | buffer 842 | buffer 843 | buffet 844 | bug 845 | bugger 846 | bugle 847 | build 848 | bulge 849 | bulk 850 | bull 851 | bulldoze 852 | bulletin 853 | bulletproof 854 | bullshit 855 | bullwhip 856 | bully 857 | bullyrag 858 | bulwark 859 | bum 860 | bumble 861 | bump 862 | bump-start 863 | bumper 864 | bunch 865 | bundle 866 | bung 867 | bungle 868 | bunk 869 | bunker 870 | bunko 871 | bunt 872 | buoy 873 | bur 874 | burble 875 | burden 876 | bureaucratize 877 | burgeon 878 | burglarize 879 | burgle 880 | burke 881 | burl 882 | burlesque 883 | burn 884 | burnish 885 | burp 886 | burrow 887 | burst 888 | burthen 889 | bury 890 | bus 891 | bush 892 | bushel 893 | bushwhack 894 | busk 895 | bust 896 | bustle 897 | busy 898 | butcher 899 | butt 900 | butter 901 | button 902 | buttonhole 903 | buttress 904 | buy 905 | buzz 906 | bypass 907 | bypass 908 | cabal 909 | cabbage 910 | cable 911 | cachinnate 912 | cackle 913 | caddy 914 | cadge 915 | cage 916 | cagmag 917 | cajole 918 | cake 919 | calcify 920 | calcine 921 | calculate 922 | calendar 923 | calender 924 | calibrate 925 | calk 926 | call 927 | calliper 928 | callous 929 | callus 930 | calm 931 | calque 932 | calumniate 933 | calve 934 | camber 935 | camouflage 936 | camp 937 | campaign 938 | camphorate 939 | can 940 | canal 941 | canalize 942 | cancel 943 | candle 944 | candy 945 | cane 946 | canker 947 | cannibalize 948 | cannon 949 | cannonade 950 | cannonball 951 | canoe 952 | canonize 953 | canoodle 954 | canopy 955 | canter 956 | canter 957 | cantilever 958 | cantillate 959 | canton 960 | canulate 961 | canvass 962 | cap 963 | capacitate 964 | caparison 965 | caper 966 | capitalize 967 | capitulate 968 | caponize 969 | capriole 970 | capsize 971 | capsulize 972 | captain 973 | caption 974 | captivate 975 | capture 976 | caramelize 977 | caravan 978 | carbolize 979 | carbonado 980 | carbonate 981 | carbonize 982 | carburet 983 | carburize 984 | card 985 | care 986 | careen 987 | career 988 | caress 989 | caricature 990 | carillon 991 | cark 992 | carnify 993 | carny 994 | carol 995 | carouse 996 | carp 997 | carpenter 998 | carpet 999 | carry 1000 | cartelize 1001 | carve 1002 | cascade 1003 | case 1004 | caseate 1005 | casefy 1006 | caseharden 1007 | cash 1008 | cashier 1009 | casserole 1010 | cast 1011 | castigate 1012 | castle 1013 | castoff 1014 | castrate 1015 | cat 1016 | catalogue 1017 | catalyze 1018 | catapult 1019 | catcall 1020 | catch 1021 | catechize 1022 | categorize 1023 | catenate 1024 | cater 1025 | caterwaul 1026 | catheterize 1027 | catholicize 1028 | catnap 1029 | caucus 1030 | caulk 1031 | cause 1032 | cauterize 1033 | caution 1034 | cave 1035 | cavern 1036 | cavil 1037 | cavort 1038 | caw 1039 | caway 1040 | cease 1041 | cede 1042 | ceil 1043 | celebrate 1044 | cellar 1045 | cement 1046 | cense 1047 | censor 1048 | censure 1049 | centralize 1050 | centre 1051 | centrifuge 1052 | centuplicate 1053 | cere 1054 | cerebrate 1055 | certificate 1056 | certify 1057 | cess 1058 | chafe 1059 | chaff 1060 | chaffer 1061 | chagrin 1062 | chain 1063 | chain-stitch 1064 | chainreact 1065 | chainsmoke 1066 | chair 1067 | chalk 1068 | challenge 1069 | chamber 1070 | chamfer 1071 | chamois 1072 | champ 1073 | champion 1074 | chance 1075 | chandelle 1076 | change 1077 | changeover 1078 | channel 1079 | channelize 1080 | chant 1081 | chap 1082 | chaperone 1083 | chapter 1084 | char 1085 | character 1086 | characterize 1087 | charcoal 1088 | charge 1089 | charm 1090 | chart 1091 | charter 1092 | chase 1093 | chass_e 1094 | chasten 1095 | chastise 1096 | chat 1097 | chatter 1098 | chauffeur 1099 | chaw 1100 | cheapen 1101 | cheat 1102 | check 1103 | checker 1104 | checkmate 1105 | checkrow 1106 | cheek 1107 | cheep 1108 | cheer 1109 | cheese 1110 | chelate 1111 | chelp 1112 | chemosorb 1113 | chequer 1114 | cherish 1115 | chevy 1116 | chew 1117 | chiack 1118 | chicane 1119 | chide 1120 | chill 1121 | chime 1122 | chin 1123 | chine 1124 | chink 1125 | chip 1126 | chirm 1127 | chirp 1128 | chirre 1129 | chirrup 1130 | chisel 1131 | chitchat 1132 | chitter 1133 | chivy 1134 | chlorinate 1135 | chock 1136 | choke 1137 | chomp 1138 | chondrify 1139 | choose 1140 | chop 1141 | chord 1142 | choreograph 1143 | chortle 1144 | chorus 1145 | christen 1146 | christianize 1147 | chrome 1148 | chronicle 1149 | chuck 1150 | chuckle 1151 | chuff 1152 | chug 1153 | chum 1154 | chump 1155 | chunder 1156 | chunter 1157 | church 1158 | churn 1159 | churr 1160 | chute 1161 | chyack 1162 | cicatrize 1163 | cinch 1164 | cinchonize 1165 | cinder 1166 | cinematograph 1167 | cipher 1168 | circle 1169 | circuit 1170 | circularize 1171 | circulate 1172 | circumambulate 1173 | circumcise 1174 | circumfuse 1175 | circumnavigate 1176 | circumnutate 1177 | circumscribe 1178 | circumstantiate 1179 | circumvallate 1180 | circumvent 1181 | cite 1182 | cityfy 1183 | civilize 1184 | clack 1185 | clad 1186 | claim 1187 | clam 1188 | clamber 1189 | clamour 1190 | clamp 1191 | clang 1192 | clangour 1193 | clank 1194 | clap 1195 | clapboard 1196 | clapperclaw 1197 | clarify 1198 | clarion 1199 | clash 1200 | clasp 1201 | class 1202 | classicize 1203 | classify 1204 | clatter 1205 | claver 1206 | claw 1207 | clay 1208 | clean 1209 | cleanse 1210 | clear 1211 | cleat 1212 | cleave 1213 | cleck 1214 | cleft 1215 | clem 1216 | clench 1217 | clepe 1218 | clerk 1219 | clew 1220 | click 1221 | climax 1222 | climb 1223 | clinch 1224 | cling 1225 | clink 1226 | clinker 1227 | clip 1228 | cloak 1229 | clobber 1230 | clock 1231 | clog 1232 | cloister 1233 | clomb 1234 | clomp 1235 | clonk 1236 | clop 1237 | close 1238 | closet 1239 | closure 1240 | clot 1241 | clothe 1242 | cloture 1243 | cloud 1244 | clout 1245 | clown 1246 | cloy 1247 | club 1248 | clubhaul 1249 | cluck 1250 | clue 1251 | clump 1252 | clunk 1253 | cluster 1254 | clutch 1255 | clutter 1256 | clype 1257 | co-edit 1258 | coach 1259 | coagulate 1260 | coal 1261 | coalesce 1262 | coarsen 1263 | coast 1264 | coat 1265 | coauthor 1266 | coax 1267 | cob 1268 | cobble 1269 | cocainize 1270 | cock 1271 | cocker 1272 | cockle 1273 | cocknify 1274 | cocoon 1275 | cod 1276 | coddle 1277 | code 1278 | codename 1279 | codify 1280 | coedit 1281 | coerce 1282 | coexist 1283 | coextend 1284 | coextrude 1285 | coff 1286 | coffer 1287 | cofound 1288 | cog 1289 | cogitate 1290 | cognize 1291 | cohabit 1292 | cohere 1293 | cohobate 1294 | coif 1295 | coiffure 1296 | coil 1297 | coin 1298 | coincide 1299 | coinsure 1300 | coke 1301 | cold 1302 | coldshoulder 1303 | coldweld 1304 | collaborate 1305 | collapse 1306 | collar 1307 | collate 1308 | collect 1309 | collectivize 1310 | collet 1311 | collide 1312 | colligate 1313 | collimate 1314 | collocate 1315 | collogue 1316 | collude 1317 | colly 1318 | colonize 1319 | colorcode 1320 | colour 1321 | comanage 1322 | comb 1323 | combat 1324 | combine 1325 | combust 1326 | come 1327 | comfort 1328 | command 1329 | commandeer 1330 | commeasure 1331 | commemorate 1332 | commence 1333 | commend 1334 | comment 1335 | commentate 1336 | commercialize 1337 | commingle 1338 | comminute 1339 | commiserate 1340 | commission 1341 | commit 1342 | commix 1343 | commove 1344 | communalize 1345 | commune 1346 | communicate 1347 | communize 1348 | commutate 1349 | commute 1350 | comp`ere 1351 | compact 1352 | companion 1353 | company 1354 | compare 1355 | compartmentalize 1356 | compass 1357 | compel 1358 | compensate 1359 | compere 1360 | compete 1361 | compile 1362 | complain 1363 | complect 1364 | complement 1365 | complete 1366 | complicate 1367 | compliment 1368 | complot 1369 | comply 1370 | comport 1371 | compose 1372 | compost 1373 | compound 1374 | comprehend 1375 | compress 1376 | comprise 1377 | compromise 1378 | compute 1379 | computerize 1380 | concatenate 1381 | concave 1382 | conceal 1383 | concede 1384 | conceive 1385 | concelebrate 1386 | concentrate 1387 | concentre 1388 | conceptualize 1389 | concern 1390 | concertina 1391 | concertize 1392 | conciliate 1393 | conclude 1394 | concoct 1395 | concrete 1396 | concretize 1397 | concur 1398 | concuss 1399 | condemn 1400 | condense 1401 | condescend 1402 | condition 1403 | condole 1404 | condone 1405 | conduce 1406 | conduct 1407 | cone 1408 | confab 1409 | confabulate 1410 | confect 1411 | confederate 1412 | confer 1413 | confess 1414 | confide 1415 | configure 1416 | confine 1417 | confirm 1418 | confiscate 1419 | conflate 1420 | conflict 1421 | conform 1422 | confound 1423 | confront 1424 | confuse 1425 | confute 1426 | conga 1427 | congeal 1428 | congest 1429 | conglobate 1430 | conglomerate 1431 | conglutinate 1432 | congratulate 1433 | congregate 1434 | conjecture 1435 | conjoin 1436 | conjugate 1437 | conjure 1438 | conk 1439 | conn 1440 | connect 1441 | connive 1442 | connote 1443 | conquer 1444 | conscript 1445 | consecrate 1446 | consent 1447 | conserve 1448 | consider 1449 | consign 1450 | consist 1451 | consociate 1452 | console 1453 | consolidate 1454 | consort 1455 | conspire 1456 | constellate 1457 | consternate 1458 | constipate 1459 | constitute 1460 | constitutionalize 1461 | constrain 1462 | constrict 1463 | constringe 1464 | construct 1465 | construe 1466 | consubstantiate 1467 | consult 1468 | consume 1469 | consummate 1470 | contact 1471 | contain 1472 | containerize 1473 | contaminate 1474 | contango 1475 | contemn 1476 | contemplate 1477 | contemporize 1478 | contend 1479 | content 1480 | contest 1481 | contextualize 1482 | continue 1483 | contort 1484 | contour 1485 | contract 1486 | contradict 1487 | contradistinguish 1488 | contraindicate 1489 | contrast 1490 | contravene 1491 | contribute 1492 | contrive 1493 | control 1494 | controvert 1495 | contuse 1496 | convalesce 1497 | convene 1498 | conventionalize 1499 | converge 1500 | converse 1501 | convert 1502 | convex 1503 | convey 1504 | convict 1505 | convince 1506 | convoke 1507 | convolute 1508 | convolve 1509 | convoy 1510 | convulse 1511 | coo 1512 | cooey 1513 | cook 1514 | cool 1515 | coop 1516 | cooper 1517 | cooperate 1518 | coopt 1519 | coordinate 1520 | cop 1521 | cope 1522 | copolymerize 1523 | copper 1524 | copper-bottom 1525 | coproduce 1526 | copulate 1527 | copy 1528 | copyedit 1529 | copyread 1530 | copyright 1531 | coquet 1532 | corbel 1533 | cord 1534 | cordon 1535 | core 1536 | cork 1537 | corkscrew 1538 | corn 1539 | corner 1540 | cornice 1541 | corrade 1542 | corral 1543 | correct 1544 | correlate 1545 | correspond 1546 | corrival 1547 | corroborate 1548 | corrode 1549 | corrugate 1550 | corrupt 1551 | corset 1552 | coruscate 1553 | cosh 1554 | cosher 1555 | cosponsor 1556 | cosset 1557 | cost 1558 | costar 1559 | costume 1560 | cote 1561 | cotter 1562 | couch 1563 | cough 1564 | counsel 1565 | count 1566 | countenance 1567 | counter 1568 | counteract 1569 | counterattack 1570 | counterattack 1571 | counterbalance 1572 | counterchange 1573 | countercharge 1574 | counterclaim 1575 | counterfeit 1576 | countermand 1577 | countermarch 1578 | countermine 1579 | countermove 1580 | counterplot 1581 | counterpoise 1582 | counterproposal 1583 | counterpunch 1584 | countersign 1585 | countersink 1586 | countervail 1587 | counterweigh 1588 | couple 1589 | course 1590 | court 1591 | courtmartial 1592 | cove 1593 | covenant 1594 | cover 1595 | coverup 1596 | covet 1597 | cow 1598 | cower 1599 | cowk 1600 | cowl 1601 | cowp 1602 | cox 1603 | cozen 1604 | crab 1605 | crack 1606 | crackle 1607 | cradle 1608 | craft 1609 | cram 1610 | cramp 1611 | crane 1612 | crank 1613 | crap 1614 | crash 1615 | crash-dive 1616 | crashland 1617 | crate 1618 | crater 1619 | craunch 1620 | crave 1621 | crawl 1622 | crayon 1623 | craze 1624 | creak 1625 | cream 1626 | crease 1627 | create 1628 | credit 1629 | creep 1630 | cremate 1631 | crenellate 1632 | crepe 1633 | crepitate 1634 | crescendo 1635 | crevasse 1636 | crew 1637 | crib 1638 | crick 1639 | criminalize 1640 | criminate 1641 | crimp 1642 | crimple 1643 | crimson 1644 | cringe 1645 | crinkle 1646 | cripple 1647 | crisp 1648 | crisscross 1649 | criticize 1650 | croak 1651 | crochet 1652 | crock 1653 | crook 1654 | croon 1655 | crop 1656 | croquet 1657 | cross 1658 | cross-breed 1659 | cross-fade 1660 | crossbred 1661 | crosscheck 1662 | crosscheck 1663 | crosscut 1664 | crossexamine 1665 | crossfertilize 1666 | crosshatch 1667 | crossindex 1668 | crosspollinate 1669 | crossquestion 1670 | crossrefer 1671 | crossreference 1672 | crossruff 1673 | crossstitch 1674 | crouch 1675 | croup 1676 | crow 1677 | crowd 1678 | crown 1679 | crucify 1680 | cruise 1681 | crumb 1682 | crumble 1683 | crump 1684 | crumple 1685 | crunch 1686 | crusade 1687 | crush 1688 | crust 1689 | crutch 1690 | cry 1691 | crystallize 1692 | cub 1693 | cube 1694 | cuckold 1695 | cuckoo 1696 | cuddle 1697 | cudgel 1698 | cue 1699 | cuff 1700 | cuirass 1701 | cull 1702 | culminate 1703 | cultivate 1704 | culture 1705 | cumber 1706 | cumulate 1707 | cup 1708 | cupel 1709 | curarize 1710 | curb 1711 | curd 1712 | curdle 1713 | cure 1714 | curette 1715 | curl 1716 | curry 1717 | curse 1718 | curtail 1719 | curtain 1720 | curtsy 1721 | curve 1722 | curvet 1723 | cushion 1724 | customize 1725 | cut 1726 | cutback 1727 | cutinize 1728 | cwtch 1729 | cybernate 1730 | cycle 1731 | cyclostyle 1732 | cypher 1733 | dab 1734 | dabble 1735 | dado 1736 | daff 1737 | dag 1738 | dagger 1739 | dally 1740 | dam 1741 | damage 1742 | damascene 1743 | damask 1744 | damn 1745 | damnify 1746 | damp 1747 | dampen 1748 | dance 1749 | dander 1750 | dandify 1751 | dandle 1752 | dangle 1753 | dap 1754 | dapple 1755 | dare 1756 | dark 1757 | darken 1758 | darkle 1759 | darn 1760 | dart 1761 | dash 1762 | date 1763 | dateline 1764 | daub 1765 | daunt 1766 | dawdle 1767 | dawn 1768 | day-dream 1769 | daydream 1770 | daze 1771 | dazzle 1772 | de-horn 1773 | deactivate 1774 | deaden 1775 | deadhead 1776 | deadlock 1777 | deafen 1778 | deal 1779 | deaminize 1780 | debag 1781 | debar 1782 | debark 1783 | debase 1784 | debate 1785 | debauch 1786 | debilitate 1787 | debit 1788 | debouch 1789 | debrief 1790 | debug 1791 | debunk 1792 | debus 1793 | debut 1794 | decaffeinate 1795 | decal 1796 | decalcify 1797 | decamp 1798 | decant 1799 | decapitate 1800 | decarbonate 1801 | decarbonize 1802 | decarburize 1803 | decay 1804 | decease 1805 | deceive 1806 | decelerate 1807 | decentralize 1808 | decerebrate 1809 | decern 1810 | decertify 1811 | decide 1812 | decimalize 1813 | decimate 1814 | decipher 1815 | deck 1816 | declaim 1817 | declare 1818 | declass 1819 | declassify 1820 | decline 1821 | declutch 1822 | decoct 1823 | decode 1824 | decoke 1825 | decollate 1826 | decolonize 1827 | decolour 1828 | decompose 1829 | decompound 1830 | decompress 1831 | deconsecrate 1832 | decontaminate 1833 | decontrol 1834 | decorate 1835 | decorticate 1836 | decoy 1837 | decrease 1838 | decree 1839 | decrepitate 1840 | decribe 1841 | decry 1842 | decrypt 1843 | decuple 1844 | decussate 1845 | dedicate 1846 | deduce 1847 | deduct 1848 | deed 1849 | deek 1850 | deem 1851 | deemphasize 1852 | deepen 1853 | deepfreeze 1854 | deepfry 1855 | deepsix 1856 | deescalate 1857 | deface 1858 | defalcate 1859 | defame 1860 | default 1861 | defeat 1862 | defecate 1863 | defect 1864 | defend 1865 | defer 1866 | defilade 1867 | defile 1868 | define 1869 | deflagrate 1870 | deflate 1871 | deflect 1872 | deflocculate 1873 | deflower 1874 | defoliate 1875 | deforce 1876 | deforest 1877 | deform 1878 | defraud 1879 | defray 1880 | defrock 1881 | defrost 1882 | defuze 1883 | defy 1884 | degas 1885 | degauss 1886 | degenerate 1887 | deglutinate 1888 | degrade 1889 | degrease 1890 | degustate 1891 | dehisce 1892 | dehorn 1893 | dehumanize 1894 | dehumidify 1895 | dehydrate 1896 | dehydrogenize 1897 | dehypnotize 1898 | deice 1899 | deify 1900 | deign 1901 | deject 1902 | delaminate 1903 | delate 1904 | delay 1905 | dele 1906 | delete 1907 | deliberate 1908 | delight 1909 | delimitate 1910 | delineate 1911 | deliquesce 1912 | deliver 1913 | delocalize 1914 | delouse 1915 | delude 1916 | deluge 1917 | delve 1918 | demagnetize 1919 | demagogue 1920 | demand 1921 | demarcate 1922 | dematerialize 1923 | demean 1924 | dement 1925 | demilitarize 1926 | demineralize 1927 | demise 1928 | demist 1929 | demit 1930 | demob 1931 | demobilize 1932 | democratize 1933 | demodulate 1934 | demolish 1935 | demonetize 1936 | demonize 1937 | demonstrate 1938 | demoralize 1939 | demote 1940 | demount 1941 | demulsify 1942 | demur 1943 | demystify 1944 | demythologize 1945 | den 1946 | denationalize 1947 | denaturalize 1948 | denaturize 1949 | denazify 1950 | denigrate 1951 | denitrate 1952 | denitrify 1953 | denizen 1954 | denominate 1955 | denote 1956 | denounce 1957 | dent 1958 | denuclearize 1959 | denudate 1960 | denude 1961 | denunciate 1962 | deny 1963 | deodorize 1964 | deoxidize 1965 | deoxygenize 1966 | depart 1967 | departmentalize 1968 | depasture 1969 | depend 1970 | depersonalize 1971 | depict 1972 | depicture 1973 | depilate 1974 | deplane 1975 | deplete 1976 | deplore 1977 | deploy 1978 | deplume 1979 | depolarize 1980 | depoliticize 1981 | depolymerize 1982 | depone 1983 | depopulate 1984 | deport 1985 | depose 1986 | deposit 1987 | deprave 1988 | deprecate 1989 | depreciate 1990 | depredate 1991 | depress 1992 | depressurize 1993 | deprive 1994 | depurate 1995 | depute 1996 | deputize 1997 | deracinate 1998 | deraign 1999 | derail 2000 | derange 2001 | derate 2002 | deration 2003 | deregister 2004 | derequisition 2005 | derestrict 2006 | deride 2007 | derive 2008 | derogate 2009 | derrick 2010 | desalinize 2011 | desalt 2012 | descale 2013 | descant 2014 | descend 2015 | deschool 2016 | describe 2017 | descry 2018 | desecrate 2019 | desegregate 2020 | desensitize 2021 | desert 2022 | deserve 2023 | desexualize 2024 | desiccate 2025 | desiderate 2026 | design 2027 | designate 2028 | desire 2029 | desist 2030 | desolate 2031 | desorb 2032 | despair 2033 | despatch 2034 | despise 2035 | despite 2036 | despoil 2037 | despond 2038 | despumate 2039 | desquamate 2040 | destine 2041 | destroy 2042 | destruct 2043 | desulphurize 2044 | detach 2045 | detail 2046 | detain 2047 | detect 2048 | deter 2049 | deterge 2050 | deteriorate 2051 | determine 2052 | detest 2053 | dethrone 2054 | detonate 2055 | detour 2056 | detoxicate 2057 | detoxify 2058 | detract 2059 | detrain 2060 | detribalize 2061 | detrude 2062 | detruncate 2063 | deuterate 2064 | devalue 2065 | devastate 2066 | develop 2067 | devest 2068 | deviate 2069 | devil 2070 | devise 2071 | devitalize 2072 | devitrify 2073 | devoice 2074 | devolve 2075 | devote 2076 | devour 2077 | dew 2078 | diabolize 2079 | diadem 2080 | diagnose 2081 | diagram 2082 | dial 2083 | dialogize 2084 | dialogue 2085 | dialyze 2086 | diamond 2087 | diaper 2088 | diazotize 2089 | dib 2090 | dibble 2091 | dice 2092 | dichotomize 2093 | dicker 2094 | dictate 2095 | diddle 2096 | die 2097 | die-cast 2098 | diet 2099 | differ 2100 | differentiate 2101 | diffract 2102 | diffuse 2103 | dig 2104 | digest 2105 | dight 2106 | digitalize 2107 | digitize 2108 | dignify 2109 | digress 2110 | dike 2111 | dilapidate 2112 | dilate 2113 | dillydally 2114 | dilute 2115 | dim 2116 | dimension 2117 | dimidiate 2118 | diminish 2119 | dimple 2120 | din 2121 | dine 2122 | ding 2123 | dint 2124 | dip 2125 | diphthongize 2126 | direct 2127 | dirk 2128 | dirty 2129 | disable 2130 | disabuse 2131 | disaccord 2132 | disaccredit 2133 | disaccustom 2134 | disadvantage 2135 | disaffect 2136 | disaffiliate 2137 | disaffirm 2138 | disafforest 2139 | disagree 2140 | disallow 2141 | disambiguate 2142 | disannul 2143 | disappear 2144 | disappoint 2145 | disapprove 2146 | disarm 2147 | disarrange 2148 | disarray 2149 | disarticulate 2150 | disassemble 2151 | disassociate 2152 | disavow 2153 | disband 2154 | disbar 2155 | disbelieve 2156 | disbranch 2157 | disbud 2158 | disburden 2159 | disburse 2160 | disc 2161 | discant 2162 | discard 2163 | discern 2164 | discharge 2165 | discipline 2166 | disclaim 2167 | disclose 2168 | discolour 2169 | discombobulate 2170 | discomfit 2171 | discomfort 2172 | discommend 2173 | discommode 2174 | discommon 2175 | discompose 2176 | disconcert 2177 | disconnect 2178 | disconsider 2179 | discontent 2180 | discontinue 2181 | discord 2182 | discount 2183 | discountenance 2184 | discourage 2185 | discourse 2186 | discover 2187 | discredit 2188 | discriminate 2189 | discuss 2190 | disdain 2191 | disembark 2192 | disembarrass 2193 | disembody 2194 | disembogue 2195 | disembowel 2196 | disembroil 2197 | disenable 2198 | disenchant 2199 | disencumber 2200 | disendow 2201 | disenfranchise 2202 | disengage 2203 | disentail 2204 | disentangle 2205 | disenthrall 2206 | disentitle 2207 | disentomb 2208 | disentwine 2209 | disestablish 2210 | disesteem 2211 | disfavour 2212 | disfeature 2213 | disfigure 2214 | disforest 2215 | disfranchise 2216 | disfrock 2217 | disgorge 2218 | disgrace 2219 | disgruntle 2220 | disguise 2221 | disgust 2222 | dish 2223 | dishearten 2224 | dishevel 2225 | dishonour 2226 | disillusion 2227 | disincline 2228 | disinfect 2229 | disinfest 2230 | disinherit 2231 | disintegrate 2232 | disinter 2233 | disinterest 2234 | disject 2235 | disjoin 2236 | disjoint 2237 | dislike 2238 | dislimn 2239 | dislocate 2240 | dislodge 2241 | dismantle 2242 | dismast 2243 | dismay 2244 | dismember 2245 | dismiss 2246 | dismount 2247 | disobey 2248 | disoblige 2249 | disorder 2250 | disorganize 2251 | disorientate 2252 | disown 2253 | disparage 2254 | dispatch 2255 | dispel 2256 | dispend 2257 | dispense 2258 | disperse 2259 | dispirit 2260 | displace 2261 | displant 2262 | display 2263 | displease 2264 | displeasure 2265 | displode 2266 | disport 2267 | dispose 2268 | dispossess 2269 | dispraise 2270 | disprize 2271 | disproportion 2272 | disproportionate 2273 | disprove 2274 | dispute 2275 | disqualify 2276 | disquiet 2277 | disrate 2278 | disregard 2279 | disrelish 2280 | disremember 2281 | disrespect 2282 | disrobe 2283 | disrupt 2284 | dissatisfy 2285 | dissect 2286 | disseize 2287 | dissemble 2288 | disseminate 2289 | dissent 2290 | dissertate 2291 | disserve 2292 | dissever 2293 | dissimilate 2294 | dissimulate 2295 | dissipate 2296 | dissociate 2297 | dissolve 2298 | dissuade 2299 | distance 2300 | distaste 2301 | distemper 2302 | distend 2303 | distill 2304 | distinguish 2305 | distort 2306 | distract 2307 | distrain 2308 | distress 2309 | distribute 2310 | district 2311 | distrust 2312 | disturb 2313 | disunite 2314 | ditch 2315 | dither 2316 | ditto 2317 | divagate 2318 | divaricate 2319 | dive 2320 | divebomb 2321 | diverge 2322 | diversify 2323 | divert 2324 | divest 2325 | divide 2326 | divine 2327 | divinize 2328 | divorce 2329 | divulgate 2330 | divulge 2331 | divvy 2332 | dizen 2333 | dizzy 2334 | do 2335 | dock 2336 | docket 2337 | doctor 2338 | document 2339 | dodder 2340 | dodge 2341 | doff 2342 | dog 2343 | dog-paddle 2344 | dogear 2345 | dogmatize 2346 | dole 2347 | dolly 2348 | dome 2349 | domesticize 2350 | domicile 2351 | dominate 2352 | domineer 2353 | don 2354 | donate 2355 | dong 2356 | doodle 2357 | doom 2358 | dope 2359 | dose 2360 | doss 2361 | dot 2362 | dote 2363 | double 2364 | double-bank 2365 | double-declutch 2366 | double-fault 2367 | double-stop 2368 | double-time 2369 | doublebogey 2370 | doublecheck 2371 | doublecross 2372 | doublepark 2373 | doublespace 2374 | doubletongue 2375 | doubt 2376 | douche 2377 | douse 2378 | dovetail 2379 | dow 2380 | dower 2381 | down 2382 | downgrade 2383 | downplay 2384 | dowse 2385 | doze 2386 | drab 2387 | drabble 2388 | draft 2389 | draft 2390 | draggle 2391 | draghunt 2392 | dragoon 2393 | drain 2394 | dramatize 2395 | drape 2396 | drat 2397 | draw 2398 | drawl 2399 | dread 2400 | dream 2401 | dredge 2402 | dree 2403 | drench 2404 | dress 2405 | dribble 2406 | drift 2407 | drill 2408 | drink 2409 | drip 2410 | drive 2411 | drivel 2412 | drizzle 2413 | drone 2414 | drool 2415 | droop 2416 | drop 2417 | dropkick 2418 | dropout 2419 | drown 2420 | drowse 2421 | drub 2422 | drudge 2423 | drug 2424 | drum 2425 | dry 2426 | dry-salt 2427 | dryclean 2428 | drydock 2429 | dub 2430 | duck 2431 | duel 2432 | duff 2433 | dulcify 2434 | dull 2435 | dumfound 2436 | dummy 2437 | dump 2438 | dun 2439 | dung 2440 | dunk 2441 | dunt 2442 | dup 2443 | dupe 2444 | duplicate 2445 | dusk 2446 | dust 2447 | dwarf 2448 | dwell 2449 | dwindle 2450 | dye 2451 | dyke 2452 | dynamite 2453 | ear 2454 | earbash 2455 | earmark 2456 | earn 2457 | earth 2458 | earwig 2459 | ease 2460 | eat 2461 | eavesdrop 2462 | ebb 2463 | ebonize 2464 | echelon 2465 | echo 2466 | eclipse 2467 | economize 2468 | eddy 2469 | edge 2470 | edify 2471 | edit 2472 | editorialize 2473 | educate 2474 | educe 2475 | edulcorate 2476 | eff 2477 | efface 2478 | effect 2479 | effectuate 2480 | effervesce 2481 | effloresce 2482 | effuse 2483 | egest 2484 | egg 2485 | egotrip 2486 | egress 2487 | ejaculate 2488 | eject 2489 | eke 2490 | elaborate 2491 | elapse 2492 | elasticate 2493 | elasticize 2494 | elate 2495 | elbow 2496 | elect 2497 | electioneer 2498 | electrify 2499 | electrocute 2500 | electrodeposit 2501 | electroform 2502 | electrolyze 2503 | electroplate 2504 | electrotype 2505 | elegize 2506 | elevate 2507 | elicit 2508 | elide 2509 | eliminate 2510 | eloin 2511 | elongate 2512 | elope 2513 | elucidate 2514 | elude 2515 | elute 2516 | elutriate 2517 | emaciate 2518 | emanate 2519 | emancipate 2520 | emasculate 2521 | embalm 2522 | embank 2523 | embargo 2524 | embark 2525 | embarrass 2526 | embattle 2527 | embay 2528 | embellish 2529 | embezzle 2530 | embitter 2531 | emblaze 2532 | emblazon 2533 | emblemize 2534 | embody 2535 | embolden 2536 | embosom 2537 | emboss 2538 | embow 2539 | embowel 2540 | embower 2541 | embrace 2542 | embrangle 2543 | embrocate 2544 | embroider 2545 | embroil 2546 | embus 2547 | emend 2548 | emerge 2549 | emigrate 2550 | emit 2551 | emote 2552 | emotionalize 2553 | empathize 2554 | emphasize 2555 | emplace 2556 | emplane 2557 | employ 2558 | empoison 2559 | empower 2560 | empt 2561 | empty 2562 | emulate 2563 | emulsify 2564 | enable 2565 | enact 2566 | enamel 2567 | enamour 2568 | encage 2569 | encamp 2570 | encarnalize 2571 | encash 2572 | enchain 2573 | enchant 2574 | enchase 2575 | encipher 2576 | encircle 2577 | enclasp 2578 | encode 2579 | encompass 2580 | encore 2581 | encounter 2582 | encourage 2583 | encroach 2584 | encrypt 2585 | encyst 2586 | end 2587 | endamage 2588 | endanger 2589 | endear 2590 | endeavour 2591 | endow 2592 | endure 2593 | energize 2594 | enervate 2595 | enface 2596 | enfeeble 2597 | enfeoff 2598 | enfilade 2599 | enforce 2600 | enfranchise 2601 | engage 2602 | engender 2603 | engineer 2604 | english 2605 | englut 2606 | engorge 2607 | engrail 2608 | engrave 2609 | engross 2610 | enhance 2611 | enigmatize 2612 | enisle 2613 | enjoin 2614 | enjoy 2615 | enkindle 2616 | enlace 2617 | enlarge 2618 | enlighten 2619 | enlist 2620 | enliven 2621 | ennoble 2622 | enounce 2623 | enplane 2624 | enquire 2625 | enrage 2626 | enrapture 2627 | enrich 2628 | enrobe 2629 | enroll 2630 | enroot 2631 | ensanguine 2632 | ensconce 2633 | enshrinshrine 2634 | enshroud 2635 | ensile 2636 | enslave 2637 | ensue 2638 | enswathe 2639 | entail 2640 | entangle 2641 | enter 2642 | entertain 2643 | enthrall 2644 | enthrone 2645 | enthuse 2646 | entice 2647 | entitle 2648 | entoil 2649 | entomb 2650 | entomologize 2651 | entrain 2652 | entrammel 2653 | entrance 2654 | entrap 2655 | entwintwine 2656 | enucleate 2657 | enumerate 2658 | enunciate 2659 | envelop 2660 | envenom 2661 | environ 2662 | envisage 2663 | envision 2664 | envy 2665 | enwind 2666 | enwomb 2667 | enwrap 2668 | enwreath 2669 | epigrammatize 2670 | epilate 2671 | epitomize 2672 | equal 2673 | equalize 2674 | equate 2675 | equilibrate 2676 | equip 2677 | equipoise 2678 | equiponderate 2679 | equivocate 2680 | eradiate 2681 | eradicate 2682 | erase 2683 | erect 2684 | erode 2685 | err 2686 | eructate 2687 | erupt 2688 | escalade 2689 | escalate 2690 | escallop 2691 | escape 2692 | escarp 2693 | escheat 2694 | eschew 2695 | escort 2696 | escribe 2697 | espalier 2698 | espouse 2699 | espy 2700 | esquire 2701 | essay 2702 | establish 2703 | esteem 2704 | esterify 2705 | estimate 2706 | estivate 2707 | estop 2708 | estrange 2709 | estreat 2710 | etch 2711 | eternize 2712 | etherealize 2713 | etherify 2714 | etherize 2715 | ethicize 2716 | etiolate 2717 | etymologize 2718 | euchre 2719 | euhemerize 2720 | eulogize 2721 | euphemize 2722 | euphonize 2723 | europeanize 2724 | evacuate 2725 | evade 2726 | evaginate 2727 | evaluate 2728 | evanesce 2729 | evangelize 2730 | evanish 2731 | evaporate 2732 | even 2733 | eventuate 2734 | evert 2735 | evict 2736 | evidence 2737 | evince 2738 | eviscerate 2739 | evite 2740 | evoke 2741 | evolve 2742 | exacerbate 2743 | exact 2744 | exaggerate 2745 | exalt 2746 | examine 2747 | exasperate 2748 | excavate 2749 | exceed 2750 | excel 2751 | except 2752 | excerpt 2753 | exchange 2754 | excide 2755 | excise 2756 | excite 2757 | exclaim 2758 | exclude 2759 | excogitate 2760 | excommunicate 2761 | excorciate 2762 | excoriate 2763 | excrete 2764 | excruciate 2765 | exculpate 2766 | excuse 2767 | execrate 2768 | execute 2769 | exemplify 2770 | exempt 2771 | exenterate 2772 | exercise 2773 | exert 2774 | exfoliate 2775 | exhale 2776 | exhaust 2777 | exhibit 2778 | exhilarate 2779 | exhort 2780 | exhume 2781 | exile 2782 | exist 2783 | exit 2784 | exonerate 2785 | exorcize 2786 | expand 2787 | expatiate 2788 | expatriate 2789 | expect 2790 | expectorate 2791 | expedite 2792 | expel 2793 | expend 2794 | expense 2795 | experience 2796 | experiment 2797 | experimentalize 2798 | expertize 2799 | expiate 2800 | expire 2801 | explain 2802 | explant 2803 | explicate 2804 | explode 2805 | exploit 2806 | explore 2807 | export 2808 | expose 2809 | expostulate 2810 | expound 2811 | express 2812 | expropriate 2813 | expunge 2814 | expurgate 2815 | exsanguinate 2816 | exscind 2817 | exsect 2818 | exsert 2819 | exsiccate 2820 | extemporize 2821 | extend 2822 | extenuate 2823 | exterminate 2824 | externalize 2825 | extinguish 2826 | extirpate 2827 | extoll 2828 | extort 2829 | extract 2830 | extradite 2831 | extrapolate 2832 | extravagate 2833 | extravasate 2834 | extricate 2835 | extrude 2836 | exuberate 2837 | exude 2838 | exult 2839 | exuviate 2840 | eye 2841 | eyeball 2842 | eyelet 2843 | f^ete 2844 | fable 2845 | fabricate 2846 | face 2847 | faceharden 2848 | faceoff 2849 | facet 2850 | facilitate 2851 | factor 2852 | factorize 2853 | fade 2854 | fadge 2855 | faff 2856 | fag 2857 | fail 2858 | faint 2859 | fair 2860 | fake 2861 | fall 2862 | fallow 2863 | false-card 2864 | falsify 2865 | falter 2866 | fame 2867 | familiarize 2868 | famish 2869 | fan 2870 | fanaticize 2871 | fancy 2872 | fankle 2873 | fantasize 2874 | faradize 2875 | farce 2876 | fare 2877 | farm 2878 | farrow 2879 | fart 2880 | fascinate 2881 | fash 2882 | fashion 2883 | fast 2884 | fasten 2885 | fat 2886 | fate 2887 | father 2888 | fathom 2889 | fatigue 2890 | fatten 2891 | fault 2892 | favour 2893 | fawn 2894 | fay 2895 | faze 2896 | fear 2897 | feast 2898 | feather 2899 | featherbed 2900 | featherstitch 2901 | feature 2902 | feaze 2903 | fecundate 2904 | fed 2905 | federalize 2906 | federate 2907 | feed 2908 | feel 2909 | feeze 2910 | feign 2911 | feint 2912 | felicitate 2913 | fellow 2914 | feminize 2915 | fence 2916 | fend 2917 | feoff 2918 | ferment 2919 | ferret 2920 | ferrule 2921 | ferry 2922 | fertilize 2923 | ferule 2924 | fester 2925 | festoon 2926 | fetch 2927 | fete 2928 | fetter 2929 | fettle 2930 | feud 2931 | feudalize 2932 | fever 2933 | fib 2934 | fictionalize 2935 | fiddle 2936 | fiddlefaddle 2937 | fidge 2938 | fidget 2939 | field 2940 | fife 2941 | fig 2942 | fight 2943 | figure 2944 | filagree 2945 | filch 2946 | file 2947 | filiate 2948 | filibuster 2949 | fill 2950 | fillagree 2951 | fillagree 2952 | fillet 2953 | fillip 2954 | film 2955 | filmset 2956 | filter 2957 | filtrate 2958 | fin 2959 | finagle 2960 | finalize 2961 | finance 2962 | find 2963 | fine 2964 | fine-draw 2965 | finesse 2966 | finger 2967 | fingerprint 2968 | finish 2969 | fink 2970 | fire 2971 | firecure 2972 | fireproof 2973 | firm 2974 | first-foot 2975 | fishes 2976 | fishtail 2977 | fissure 2978 | fist 2979 | fit 2980 | fix 2981 | fixate 2982 | fizz 2983 | fizzle 2984 | flabbergast 2985 | flag 2986 | flagellate 2987 | flail 2988 | flake 2989 | flam 2990 | flame 2991 | flameout 2992 | flange 2993 | flank 2994 | flannel 2995 | flap 2996 | flare 2997 | flash 2998 | flatten 2999 | flatter 3000 | flatter 3001 | flaunt 3002 | flavour 3003 | flaw 3004 | fleck 3005 | fledge 3006 | flee 3007 | fleece 3008 | fleer 3009 | fleet 3010 | flense 3011 | flesh 3012 | fletch 3013 | flex 3014 | fley 3015 | flick 3016 | flicker 3017 | flight 3018 | flimflam 3019 | flinch 3020 | fling 3021 | flint 3022 | flip 3023 | flirt 3024 | flit 3025 | flitch 3026 | flite 3027 | flitter 3028 | float 3029 | flocculate 3030 | flock 3031 | flog 3032 | flood 3033 | floodlight 3034 | floor 3035 | flop 3036 | flounce 3037 | flounder 3038 | flour 3039 | flourish 3040 | flout 3041 | flow 3042 | flower 3043 | fluctuate 3044 | flue-cure 3045 | fluff 3046 | fluidize 3047 | fluke 3048 | flume 3049 | flummox 3050 | flunk 3051 | fluoresce 3052 | fluoridate 3053 | fluoridize 3054 | fluorinate 3055 | flurry 3056 | flush 3057 | fluster 3058 | flute 3059 | flutter 3060 | flux 3061 | fly 3062 | flyblow 3063 | flyfish 3064 | flyspeck 3065 | flyte 3066 | foal 3067 | foam 3068 | fob 3069 | focalize 3070 | focus 3071 | fodder 3072 | fog 3073 | foil 3074 | foin 3075 | foist 3076 | fold 3077 | foliate 3078 | folio 3079 | folk 3080 | folk-dance 3081 | follow 3082 | foment 3083 | fondle 3084 | fool 3085 | foot 3086 | foot-slog 3087 | footle 3088 | footnote 3089 | foozle 3090 | forage 3091 | foray 3092 | forbear 3093 | forbid 3094 | force 3095 | force-land 3096 | force-ripe 3097 | forcefeed 3098 | ford 3099 | forearm 3100 | forebode 3101 | forecast 3102 | foreclose 3103 | foredo 3104 | foredoom 3105 | foregather 3106 | forehand 3107 | foreknow 3108 | forelock 3109 | foreordain 3110 | forereach 3111 | forerun 3112 | foresee 3113 | foreshadow 3114 | foreshorten 3115 | foreshow 3116 | forespeak 3117 | forest 3118 | forest 3119 | forestall 3120 | foreswear 3121 | foretaste 3122 | foretell 3123 | foretoken 3124 | forewarn 3125 | forfeit 3126 | forfend 3127 | forgat 3128 | forgather 3129 | forge 3130 | forget 3131 | forgive 3132 | forgo 3133 | forjudge 3134 | fork 3135 | form 3136 | formalize 3137 | format 3138 | formicate 3139 | formularize 3140 | formulate 3141 | fornicate 3142 | forsake 3143 | forspeak 3144 | forswear 3145 | fortify 3146 | fortress 3147 | fortune 3148 | forward 3149 | fossick 3150 | fossilize 3151 | foster 3152 | foul 3153 | founder 3154 | founder 3155 | fourflush 3156 | fowl 3157 | fox 3158 | foxhunt 3159 | fraction 3160 | fractionate 3161 | fractionize 3162 | fracture 3163 | frag 3164 | fragment 3165 | frame 3166 | franchise 3167 | frank 3168 | frap 3169 | fraternize 3170 | fray 3171 | frazzle 3172 | freak 3173 | freckle 3174 | free 3175 | free-select 3176 | free-wheel 3177 | freeboot 3178 | freelance 3179 | freeload 3180 | freewheel 3181 | freeze 3182 | freezedry 3183 | freight 3184 | french-polish 3185 | frenchify 3186 | frenzy 3187 | frequent 3188 | fresh 3189 | freshen 3190 | fret 3191 | fribble 3192 | fricassee 3193 | friend 3194 | frig 3195 | frighten 3196 | frill 3197 | fringe 3198 | frisk 3199 | fritt 3200 | fritter 3201 | frivol 3202 | frizz 3203 | frizzle 3204 | frock 3205 | frog 3206 | frogmarch 3207 | frolic 3208 | front 3209 | frost 3210 | froth 3211 | frown 3212 | fructify 3213 | fruit 3214 | frustrate 3215 | fry 3216 | fuck 3217 | fuddle 3218 | fudge 3219 | fuel 3220 | fulfill 3221 | fulgurate 3222 | fuller 3223 | fuller 3224 | fulminate 3225 | fumble 3226 | fume 3227 | fumigate 3228 | fun 3229 | function 3230 | fund 3231 | funk 3232 | funnel 3233 | fur 3234 | furbelow 3235 | furbish 3236 | furcate 3237 | furl 3238 | furlough 3239 | furnish 3240 | furrow 3241 | further 3242 | fusillade 3243 | fuss 3244 | fustigate 3245 | fuze 3246 | fuzz 3247 | gab 3248 | gabble 3249 | gad 3250 | gaff 3251 | gag 3252 | gaggle 3253 | gain 3254 | gainsay 3255 | gall 3256 | gallant 3257 | gallicize 3258 | gallivant 3259 | gallop 3260 | galumph 3261 | galvanize 3262 | gam 3263 | gamble 3264 | gambol 3265 | game 3266 | gammon 3267 | gang 3268 | gangrene 3269 | gape 3270 | garage 3271 | garb 3272 | garble 3273 | garden 3274 | gargle 3275 | garland 3276 | garment 3277 | garner 3278 | garnish 3279 | garnishee 3280 | garrison 3281 | garrotte 3282 | garter 3283 | gas 3284 | gasconade 3285 | gash 3286 | gasify 3287 | gasp 3288 | gat 3289 | gate 3290 | gate-crash 3291 | gatecrash 3292 | gather 3293 | gauge 3294 | gawk 3295 | gawp 3296 | gaze 3297 | gazette 3298 | gazump 3299 | gear 3300 | gee 3301 | gelatinize 3302 | geld 3303 | gem 3304 | geminate 3305 | gemmate 3306 | generalize 3307 | generate 3308 | gentle 3309 | genuflect 3310 | geocode 3311 | geologize 3312 | geometrize 3313 | germanize 3314 | germinate 3315 | gerrymander 3316 | gestate 3317 | gesticulate 3318 | gesture 3319 | get 3320 | getter 3321 | ghost 3322 | ghostwrite 3323 | gib 3324 | gibber 3325 | gibbet 3326 | gibe 3327 | gie 3328 | gift 3329 | giftwrap 3330 | gig 3331 | giggle 3332 | gild 3333 | gill 3334 | gimlet 3335 | gimme 3336 | gin 3337 | ginger 3338 | gird 3339 | girdle 3340 | girth 3341 | give 3342 | glac_e 3343 | glaciate 3344 | glad 3345 | gladden 3346 | glair 3347 | glamourize 3348 | glance 3349 | glare 3350 | glass 3351 | glaze 3352 | gleam 3353 | glean 3354 | glide 3355 | glimmer 3356 | glimpse 3357 | glint 3358 | glissade 3359 | glisten 3360 | glister 3361 | glitter 3362 | gloat 3363 | globe 3364 | globe-trot 3365 | gloom 3366 | glorify 3367 | glory 3368 | gloss 3369 | glove 3370 | glow 3371 | glower 3372 | gloze 3373 | glue 3374 | glut 3375 | gnarl 3376 | gnash 3377 | gnaw 3378 | gnosticize 3379 | go 3380 | goad 3381 | gob 3382 | gobble 3383 | goffer 3384 | goggle 3385 | gold-plate 3386 | gollop 3387 | golly 3388 | goof 3389 | goose 3390 | goosestep 3391 | gore 3392 | gorge 3393 | gormandize 3394 | gossip 3395 | goster 3396 | gothicize 3397 | gotta 3398 | gouge 3399 | govern 3400 | gown 3401 | grab 3402 | grabble 3403 | grace 3404 | gradate 3405 | grade 3406 | graduate 3407 | graft 3408 | grain 3409 | grandstand 3410 | grangerize 3411 | grant 3412 | granulate 3413 | graph 3414 | graphitize 3415 | grapple 3416 | grasp 3417 | grass 3418 | grate 3419 | gratify 3420 | gratulate 3421 | grave 3422 | gravel 3423 | gravitate 3424 | graze 3425 | grease 3426 | greaten 3427 | grecize 3428 | gree 3429 | greet 3430 | grey 3431 | griddle 3432 | gride 3433 | grieve 3434 | grill 3435 | grimace 3436 | grime 3437 | grin 3438 | grind 3439 | grip 3440 | gripe 3441 | grit 3442 | grizzle 3443 | groan 3444 | groin 3445 | groom 3446 | groove 3447 | grope 3448 | gross 3449 | grouch 3450 | ground 3451 | group 3452 | grouse 3453 | grout 3454 | grovel 3455 | grow 3456 | growl 3457 | grub 3458 | grubstake 3459 | grudge 3460 | grumble 3461 | grump 3462 | grunt 3463 | guarantee 3464 | guaranty 3465 | guard 3466 | gudgeon 3467 | guerdon 3468 | guess 3469 | guest 3470 | guffaw 3471 | guide 3472 | guillotine 3473 | guise 3474 | gulf 3475 | gull 3476 | gully 3477 | gulp 3478 | gum 3479 | gumshoe 3480 | gun 3481 | gurgle 3482 | gush 3483 | gusset 3484 | gut 3485 | gutter 3486 | gutturalize 3487 | guy 3488 | guzzle 3489 | gybe 3490 | gyp 3491 | gyrate 3492 | gyve 3493 | habilitate 3494 | habit 3495 | habituate 3496 | hachure 3497 | hack 3498 | hackle 3499 | hackney 3500 | hacksaw 3501 | hade 3502 | haft 3503 | haggle 3504 | hail 3505 | hale 3506 | half-volley 3507 | hallal 3508 | hallmark 3509 | halloo 3510 | hallow 3511 | hallucinate 3512 | halo 3513 | halogenate 3514 | halter 3515 | halter 3516 | halve 3517 | ham 3518 | hammer 3519 | hamper 3520 | hamshackle 3521 | hamstring 3522 | hand 3523 | hand-knit 3524 | handcuff 3525 | handfast 3526 | handfeed 3527 | handicap 3528 | handle 3529 | handpick 3530 | hang 3531 | hank 3532 | hanker 3533 | hansel 3534 | hap 3535 | happen 3536 | harangue 3537 | harass 3538 | harbinger 3539 | harbour 3540 | harden 3541 | hare 3542 | hark 3543 | harm 3544 | harmonize 3545 | harness 3546 | harp 3547 | harpoon 3548 | harrow 3549 | harrumph 3550 | harry 3551 | harvest 3552 | hash 3553 | hasp 3554 | hassle 3555 | haste 3556 | hasten 3557 | hat 3558 | hatch 3559 | hatchel 3560 | hate 3561 | haul 3562 | haunt 3563 | have 3564 | haven 3565 | haver 3566 | havoc 3567 | haw 3568 | hawk 3569 | hawse 3570 | hay 3571 | hazard 3572 | haze 3573 | head 3574 | head-load 3575 | headline 3576 | headreach 3577 | heal 3578 | heap 3579 | hear 3580 | hearken 3581 | heart 3582 | hearten 3583 | heat 3584 | heathenize 3585 | heattreat 3586 | heave 3587 | hebetate 3588 | hebraize 3589 | heckle 3590 | hector 3591 | hedge 3592 | hedge-hop 3593 | hedgehop 3594 | heed 3595 | heel 3596 | heel-and-toe 3597 | heft 3598 | heighten 3599 | heist 3600 | hellenize 3601 | helm 3602 | help 3603 | helve 3604 | hem 3605 | hemagglutinate 3606 | hemorrhage 3607 | hemstitch 3608 | henpeck 3609 | hent 3610 | herald 3611 | herd 3612 | heroworship 3613 | herringbone 3614 | hesitate 3615 | heterodyne 3616 | hew 3617 | hex 3618 | hibernate 3619 | hiccough 3620 | hiccup 3621 | hide 3622 | hie 3623 | higgle 3624 | highhat 3625 | highlight 3626 | hight 3627 | hightail 3628 | hijack 3629 | hike 3630 | hill 3631 | hilt 3632 | hinder 3633 | hinge 3634 | hinny 3635 | hint 3636 | hire 3637 | hispanicize 3638 | hiss 3639 | hit 3640 | hitch 3641 | hitchhike 3642 | hive 3643 | hoard 3644 | hoarsen 3645 | hoax 3646 | hob 3647 | hobble 3648 | hobbyhorse 3649 | hobnob 3650 | hock 3651 | hocus 3652 | hocuspocus 3653 | hoe 3654 | hog 3655 | hogtie 3656 | hoick 3657 | hoiden 3658 | hoist 3659 | hoke 3660 | hold 3661 | holden 3662 | hole 3663 | holiday 3664 | holler 3665 | hollow 3666 | holp 3667 | holpen 3668 | holystone 3669 | homage 3670 | home 3671 | homogenize 3672 | homologate 3673 | homologize 3674 | hone 3675 | honey 3676 | honeycomb 3677 | honeymoon 3678 | honor 3679 | honour 3680 | hood 3681 | hoodoo 3682 | hoodwink 3683 | hoof 3684 | hook 3685 | hookup 3686 | hoop 3687 | hooray 3688 | hoot 3689 | hoover 3690 | hop 3691 | hope 3692 | hopple 3693 | horde 3694 | horn 3695 | hornswoggle 3696 | horrify 3697 | horse 3698 | horseshoe 3699 | horsewhip 3700 | hose 3701 | hospitalize 3702 | host 3703 | hot-press 3704 | hotdog 3705 | hotfoot 3706 | hound 3707 | house 3708 | house-train 3709 | housel 3710 | hovel 3711 | hover 3712 | howl 3713 | huckster 3714 | huddle 3715 | huff 3716 | hug 3717 | huggermugger 3718 | hulk 3719 | hum 3720 | humanize 3721 | humble 3722 | humbug 3723 | humidify 3724 | humiliate 3725 | humour 3726 | hump 3727 | hunch 3728 | hunger 3729 | hunt 3730 | hurdle 3731 | hurl 3732 | hurrah 3733 | hurry 3734 | hurt 3735 | hurtle 3736 | husband 3737 | hush 3738 | hustle 3739 | hutch 3740 | huzzah 3741 | hybridize 3742 | hydrate 3743 | hydrogenize 3744 | hydrolyze 3745 | hydroplane 3746 | hymn 3747 | hyperbolize 3748 | hypersensitize 3749 | hypertrophy 3750 | hyphenate 3751 | hypnotize 3752 | hyposensitize 3753 | hypostasize 3754 | hypostatize 3755 | hypothecate 3756 | hypothesize 3757 | hysterectomize 3758 | ice 3759 | iceskate 3760 | idealize 3761 | ideate 3762 | identify 3763 | idle 3764 | idolatrize 3765 | idolize 3766 | ignite 3767 | ignore 3768 | illegalize 3769 | illtreat 3770 | illude 3771 | illume 3772 | illuminate 3773 | illumine 3774 | illuse 3775 | illustrate 3776 | image 3777 | imagine 3778 | imbed 3779 | imbibe 3780 | imbricate 3781 | imbrue 3782 | imbue 3783 | imitate 3784 | immaterialize 3785 | immerge 3786 | immerse 3787 | immigrate 3788 | immingle 3789 | immix 3790 | immobilize 3791 | immolate 3792 | immortalize 3793 | immunize 3794 | immure 3795 | imp 3796 | impact 3797 | impair 3798 | impale 3799 | impanel 3800 | imparadise 3801 | impart 3802 | impassion 3803 | impaste 3804 | impeach 3805 | impearl 3806 | impede 3807 | impel 3808 | impend 3809 | imperil 3810 | impersonalize 3811 | impersonate 3812 | impetrate 3813 | impinge 3814 | implant 3815 | implead 3816 | implement 3817 | implicate 3818 | implode 3819 | implore 3820 | imply 3821 | impolder 3822 | import 3823 | importune 3824 | impose 3825 | impost 3826 | impound 3827 | impoverish 3828 | impower 3829 | imprecate 3830 | impregnate 3831 | impress 3832 | imprint 3833 | imprison 3834 | impropriate 3835 | improve 3836 | improvise 3837 | impugn 3838 | impulse-buy 3839 | impute 3840 | inactivate 3841 | inarch 3842 | inaugurate 3843 | inbreathe 3844 | inbred 3845 | incandesce 3846 | incapacitate 3847 | incapsulate 3848 | incarcerate 3849 | incardinate 3850 | incarnadine 3851 | incarnate 3852 | incase 3853 | incense 3854 | incept 3855 | incinerate 3856 | incise 3857 | incite 3858 | incline 3859 | inclose 3860 | include 3861 | incommode 3862 | inconvenience 3863 | incorporate 3864 | incrassate 3865 | increase 3866 | incriminate 3867 | incross 3868 | incrust 3869 | incubate 3870 | inculcate 3871 | inculpate 3872 | incumber 3873 | incur 3874 | incurvate 3875 | indemnify 3876 | indent 3877 | indenture 3878 | index 3879 | indicate 3880 | indict 3881 | indispose 3882 | indite 3883 | individualize 3884 | individuate 3885 | indoctrinate 3886 | indorse 3887 | induce 3888 | induct 3889 | indue 3890 | indulge 3891 | indurate 3892 | industrialize 3893 | indwell 3894 | inearth 3895 | inebriate 3896 | infamize 3897 | infatuate 3898 | infect 3899 | infer 3900 | infest 3901 | infibulate 3902 | infiltrate 3903 | infix 3904 | inflame 3905 | inflate 3906 | inflect 3907 | inflict 3908 | influence 3909 | infold 3910 | inform 3911 | infract 3912 | infringe 3913 | infuriate 3914 | infuse 3915 | ingather 3916 | ingeminate 3917 | ingenerate 3918 | ingest 3919 | ingot 3920 | ingraft 3921 | ingrain 3922 | ingratiate 3923 | ingulf 3924 | ingurgitate 3925 | inhabit 3926 | inhale 3927 | inhere 3928 | inherit 3929 | inhibit 3930 | inhume 3931 | initial 3932 | initialize 3933 | initiate 3934 | inject 3935 | injure 3936 | ink 3937 | inlace 3938 | inlay 3939 | inlet 3940 | inmesh 3941 | innervate 3942 | innerve 3943 | innovate 3944 | inoculate 3945 | inosculate 3946 | inquire 3947 | insalivate 3948 | inscribe 3949 | inseminate 3950 | insert 3951 | inset 3952 | inshrine 3953 | insinuate 3954 | insist 3955 | insnare 3956 | insolate 3957 | insoul 3958 | inspan 3959 | inspect 3960 | insphere 3961 | inspire 3962 | inspirit 3963 | inspissate 3964 | install 3965 | instance 3966 | instantiate 3967 | instate 3968 | instigate 3969 | instill 3970 | institute 3971 | institutionalize 3972 | instruct 3973 | insufflate 3974 | insulate 3975 | insult 3976 | insure 3977 | integrate 3978 | intellectualize 3979 | intend 3980 | intenerate 3981 | intensify 3982 | inter 3983 | interact 3984 | interbreed 3985 | intercalate 3986 | intercede 3987 | intercept 3988 | interchange 3989 | intercommunicate 3990 | intercrop 3991 | intercross 3992 | intercut 3993 | interdict 3994 | interdigitate 3995 | interest 3996 | interfere 3997 | interfile 3998 | interflow 3999 | interfuse 4000 | intergrade 4001 | interiorize 4002 | interject 4003 | interlace 4004 | interlaminate 4005 | interlap 4006 | interlard 4007 | interlay 4008 | interleave 4009 | interlineate 4010 | interlink 4011 | interlock 4012 | interlope 4013 | intermarry 4014 | intermingle 4015 | intermit 4016 | intermix 4017 | intern 4018 | internalize 4019 | internationalize 4020 | interosculate 4021 | interpage 4022 | interpellate 4023 | interpenetrate 4024 | interplead 4025 | interpolate 4026 | interpose 4027 | interpret 4028 | interrelate 4029 | interrogate 4030 | interrupt 4031 | intersect 4032 | interspace 4033 | intersperse 4034 | interstratify 4035 | intertwine 4036 | intervene 4037 | interview 4038 | interweave 4039 | intimate 4040 | intimidate 4041 | intitule 4042 | intonate 4043 | intone 4044 | intoxicate 4045 | intreat 4046 | intrench 4047 | intrigue 4048 | introduce 4049 | introject 4050 | intromit 4051 | introspect 4052 | introvert 4053 | intrude 4054 | intrust 4055 | intubate 4056 | intuit 4057 | intumesce 4058 | intussuscept 4059 | intwine 4060 | inundate 4061 | inure 4062 | inurn 4063 | invade 4064 | invaginate 4065 | invalid 4066 | invalidate 4067 | inveigh 4068 | inveigle 4069 | invent 4070 | inventory 4071 | invert 4072 | invest 4073 | investigate 4074 | invigilate 4075 | invigorate 4076 | invite 4077 | invocate 4078 | invoice 4079 | invoke 4080 | involute 4081 | involve 4082 | inweave 4083 | inwrap 4084 | iodate 4085 | iodize 4086 | ionize 4087 | irk 4088 | iron 4089 | ironize 4090 | irradiate 4091 | irrigate 4092 | irritate 4093 | irrupt 4094 | islamize 4095 | island 4096 | isochronize 4097 | isolate 4098 | isomerize 4099 | issue 4100 | italianize 4101 | italicize 4102 | itch 4103 | item 4104 | itemize 4105 | iterate 4106 | itinerate 4107 | jab 4108 | jabber 4109 | jack 4110 | jacket 4111 | jackknife 4112 | jackknife 4113 | jade 4114 | jaga 4115 | jagg 4116 | jail 4117 | jam 4118 | jampack 4119 | jangle 4120 | japan 4121 | jape 4122 | jar 4123 | jargon 4124 | jargonize 4125 | jaundice 4126 | jaunt 4127 | jaup 4128 | jaw 4129 | jay-walk 4130 | jaywalk 4131 | jazz 4132 | jeer 4133 | jell 4134 | jellify 4135 | jelly 4136 | jemmy 4137 | jeopardize 4138 | jerk 4139 | jerrybuild 4140 | jess 4141 | jest 4142 | jet 4143 | jettison 4144 | jew 4145 | jewel 4146 | jib 4147 | jibe 4148 | jig 4149 | jiggle 4150 | jilt 4151 | jimmy 4152 | jingle 4153 | jink 4154 | jinx 4155 | jitter 4156 | job 4157 | jockey 4158 | jog 4159 | jog-trot 4160 | joggle 4161 | join 4162 | joint 4163 | joist 4164 | joke 4165 | jollify 4166 | jolly 4167 | jolt 4168 | jook 4169 | josh 4170 | jot 4171 | jounce 4172 | journalize 4173 | journey 4174 | joust 4175 | joy 4176 | joy-ride 4177 | joypop 4178 | jubilate 4179 | judaize 4180 | judder 4181 | judge 4182 | jug 4183 | juggle 4184 | jugulate 4185 | jumble 4186 | jump 4187 | jumpstart 4188 | junk 4189 | junket 4190 | justify 4191 | justle 4192 | jut 4193 | juxtapose 4194 | kalsomine 4195 | kangaroo 4196 | kayo 4197 | keck 4198 | kedge 4199 | keek 4200 | keel 4201 | keelhaul 4202 | keen 4203 | keep 4204 | ken 4205 | kennel 4206 | kep 4207 | keratinize 4208 | kerfuffle 4209 | kerne 4210 | kernel 4211 | key 4212 | keyboard 4213 | keynote 4214 | keypunch 4215 | kibble 4216 | kibitz 4217 | kibosh 4218 | kick 4219 | kick-start 4220 | kid 4221 | kidnap 4222 | kill 4223 | kiln 4224 | kilt 4225 | kindle 4226 | kip 4227 | kipper 4228 | kiss 4229 | kite 4230 | kitten 4231 | kittle 4232 | knacker 4233 | knap 4234 | knead 4235 | kneel 4236 | knife 4237 | knight 4238 | knit 4239 | knob 4240 | knock 4241 | knoll 4242 | knot 4243 | know 4244 | knurl 4245 | ko 4246 | kockelsch 4247 | kotow 4248 | kowtow 4249 | kraal 4250 | kyanize 4251 | label 4252 | labialize 4253 | labour 4254 | lace 4255 | lacerate 4256 | lack 4257 | lackey 4258 | lacquer 4259 | lactate 4260 | ladder 4261 | lade 4262 | ladle 4263 | ladyfy 4264 | lag 4265 | laicize 4266 | laik 4267 | lair 4268 | lallygag 4269 | lam 4270 | lamb 4271 | lambaste 4272 | lame 4273 | lament 4274 | laminate 4275 | lampoon 4276 | lance 4277 | land 4278 | landscape 4279 | languish 4280 | lap 4281 | lapidate 4282 | lapidify 4283 | lapse 4284 | lard 4285 | largen 4286 | lark 4287 | larn 4288 | larrup 4289 | lase 4290 | lash 4291 | lasso 4292 | last 4293 | latch 4294 | lath 4295 | lathe 4296 | lather 4297 | latinize 4298 | lattice 4299 | laud 4300 | laugh 4301 | launch 4302 | launder 4303 | lave 4304 | lavish 4305 | layer 4306 | layer 4307 | laze 4308 | leach 4309 | lead 4310 | leaf 4311 | league 4312 | leak 4313 | lean 4314 | leap 4315 | leapfrog 4316 | learn 4317 | lease 4318 | leash 4319 | leather 4320 | leave 4321 | leaven 4322 | lecture 4323 | ledger 4324 | leer 4325 | leer 4326 | left 4327 | leg 4328 | legalize 4329 | legislate 4330 | legitimate 4331 | legitimize 4332 | leister 4333 | lend 4334 | lengthen 4335 | lessen 4336 | lesson 4337 | let 4338 | letch 4339 | letter 4340 | levant 4341 | level 4342 | lever 4343 | levigate 4344 | levitate 4345 | levy 4346 | lhlike 4347 | liaise 4348 | libel 4349 | liberalize 4350 | liberate 4351 | librate 4352 | licence 4353 | license 4354 | lick 4355 | lie 4356 | lift 4357 | ligate 4358 | ligature 4359 | light 4360 | lighten 4361 | lignify 4362 | like 4363 | liken 4364 | lilt 4365 | limb 4366 | limber 4367 | lime 4368 | limit 4369 | limn 4370 | limp 4371 | line 4372 | linger 4373 | link 4374 | lionize 4375 | lip 4376 | lipread 4377 | liquate 4378 | liquefy 4379 | liquesce 4380 | liquidate 4381 | liquidize 4382 | liquify 4383 | liquor 4384 | lisp 4385 | list 4386 | listen 4387 | lit 4388 | lithograph 4389 | litigate 4390 | litter 4391 | live 4392 | liven 4393 | lixiviate 4394 | load 4395 | loaf 4396 | loam 4397 | loan 4398 | loathe 4399 | lob 4400 | lobby 4401 | localize 4402 | locate 4403 | lock 4404 | loco 4405 | lodge 4406 | loft 4407 | log 4408 | logroll 4409 | loiter 4410 | loll 4411 | lollop 4412 | long 4413 | look 4414 | loom 4415 | loop 4416 | loophole 4417 | loose 4418 | loosen 4419 | loot 4420 | lop 4421 | lope 4422 | lord 4423 | lose 4424 | lot 4425 | louden 4426 | lounge 4427 | lour 4428 | lout 4429 | love 4430 | lower 4431 | lower 4432 | lowercase 4433 | lubricate 4434 | luck 4435 | lucubrate 4436 | luff 4437 | lug 4438 | lull 4439 | lullaby 4440 | lumber 4441 | luminesce 4442 | lump 4443 | lunch 4444 | lunge 4445 | lurch 4446 | lure 4447 | lurk 4448 | lush 4449 | lust 4450 | lustrate 4451 | lustre 4452 | lute 4453 | luxate 4454 | luxuriate 4455 | lynch 4456 | lyophilize 4457 | lyse 4458 | macadamize 4459 | mace 4460 | macerate 4461 | machicolate 4462 | machinate 4463 | machine 4464 | machinegun 4465 | maculate 4466 | mad 4467 | madden 4468 | maffick 4469 | magnetize 4470 | magnify 4471 | mail 4472 | maim 4473 | maintain 4474 | major 4475 | make 4476 | maladminister 4477 | maledict 4478 | malfunction 4479 | malign 4480 | malinger 4481 | malt 4482 | maltreat 4483 | mamaguy 4484 | mambo 4485 | mammock 4486 | man 4487 | man-handle 4488 | manacle 4489 | manage 4490 | mandate 4491 | manducate 4492 | maneuver 4493 | mangle 4494 | manhandle 4495 | manicure 4496 | manifest 4497 | manifold 4498 | manipulate 4499 | manoeuvre 4500 | mantle 4501 | manufacture 4502 | manumit 4503 | manure 4504 | map 4505 | mar 4506 | maraud 4507 | marble 4508 | marcel 4509 | march 4510 | margin 4511 | marginalize 4512 | marginate 4513 | marinade 4514 | marinate 4515 | mark 4516 | market 4517 | marl 4518 | maroon 4519 | marry 4520 | marshal 4521 | martyr 4522 | marvel 4523 | mash 4524 | mask 4525 | mason 4526 | masquerade 4527 | mass 4528 | massacre 4529 | massage 4530 | massproduce 4531 | mast 4532 | master 4533 | master-mind 4534 | mastermind 4535 | masticate 4536 | masturbate 4537 | mat 4538 | match 4539 | matchmark 4540 | mate 4541 | materialize 4542 | matriculate 4543 | matter 4544 | maturate 4545 | mature 4546 | maul 4547 | maunder 4548 | maximize 4549 | may 4550 | maze 4551 | mean 4552 | meander 4553 | measure 4554 | mechanize 4555 | medal 4556 | meddle 4557 | mediate 4558 | mediatize 4559 | medicate 4560 | meditate 4561 | meet 4562 | meld 4563 | meliorate 4564 | mellow 4565 | melodize 4566 | melodramatize 4567 | melt 4568 | memorialize 4569 | memorize 4570 | menace 4571 | mend 4572 | menstruate 4573 | mention 4574 | mercerize 4575 | merchant 4576 | mercurate 4577 | mercurialize 4578 | merge 4579 | merit 4580 | mesh 4581 | mesmerize 4582 | mess 4583 | metabolize 4584 | metal 4585 | metallize 4586 | metamorphose 4587 | metaphrase 4588 | metaphysicize 4589 | metastasize 4590 | metathesize 4591 | mete 4592 | meter 4593 | methodize 4594 | methought 4595 | methylate 4596 | metricate 4597 | metricize 4598 | metrify 4599 | mew 4600 | mewl 4601 | mezzotint 4602 | miaul 4603 | microfilm 4604 | micturate 4605 | middle 4606 | miff 4607 | might 4608 | migrate 4609 | mike 4610 | milden 4611 | mildew 4612 | militarize 4613 | militate 4614 | milk 4615 | mill 4616 | milt 4617 | mime 4618 | mimeograph 4619 | mimeograph 4620 | mimic 4621 | mince 4622 | mind 4623 | mine 4624 | mineralize 4625 | mingle 4626 | miniaturize 4627 | minify 4628 | minimize 4629 | minister 4630 | mint 4631 | minute 4632 | mire 4633 | mirror 4634 | misadvise 4635 | misapply 4636 | misapprehend 4637 | misappropriate 4638 | misbecome 4639 | misbehave 4640 | miscalculate 4641 | miscall 4642 | miscarry 4643 | miscast 4644 | misconceive 4645 | misconduct 4646 | misconstrue 4647 | miscount 4648 | miscreate 4649 | miscue 4650 | misdate 4651 | misdeal 4652 | misdemean 4653 | misdirect 4654 | misdoubt 4655 | misfile 4656 | misfire 4657 | misfit 4658 | misgive 4659 | misgovern 4660 | misguide 4661 | mishandle 4662 | mishear 4663 | mishit 4664 | misinform 4665 | misinterpret 4666 | misjudge 4667 | mislay 4668 | mislead 4669 | mislike 4670 | mismanage 4671 | mismatch 4672 | misname 4673 | misplace 4674 | misplay 4675 | mispled 4676 | misprint 4677 | misprize 4678 | mispronounce 4679 | misquote 4680 | misread 4681 | misreport 4682 | misrepresent 4683 | misrule 4684 | miss 4685 | misshape 4686 | mission 4687 | misspell 4688 | misspend 4689 | misstate 4690 | mist 4691 | mistake 4692 | mister 4693 | mistime 4694 | mistranslate 4695 | mistreat 4696 | mistrust 4697 | misunderstand 4698 | misuse 4699 | mitch 4700 | mitigate 4701 | mitre 4702 | mix 4703 | mizzle 4704 | moan 4705 | moat 4706 | mob 4707 | mobilize 4708 | mock 4709 | model 4710 | moderate 4711 | modernize 4712 | modge 4713 | modify 4714 | modulate 4715 | mohammedanize 4716 | moil 4717 | moisten 4718 | moisturize 4719 | moither 4720 | molest 4721 | mollify 4722 | mollycoddle 4723 | molt 4724 | monetize 4725 | mongrelize 4726 | monitor 4727 | monopolize 4728 | monotonize 4729 | moo 4730 | mooch 4731 | moon 4732 | moonlight 4733 | moor 4734 | moot 4735 | mop 4736 | mope 4737 | moralize 4738 | mordant 4739 | mortar 4740 | mortgage 4741 | mortify 4742 | mortise 4743 | mosey 4744 | mothball 4745 | mother 4746 | mothproof 4747 | mothproof 4748 | motion 4749 | motivate 4750 | motive 4751 | motor 4752 | motorize 4753 | mottle 4754 | mould 4755 | moulder 4756 | moult 4757 | mound 4758 | mount 4759 | mountaineer 4760 | mountebank 4761 | mourn 4762 | mouse 4763 | mouth 4764 | move 4765 | mow 4766 | muck 4767 | muckamuck 4768 | muckrake 4769 | mud 4770 | muddle 4771 | muddy 4772 | muff 4773 | muffle 4774 | mug 4775 | mulch 4776 | mulct 4777 | mull 4778 | multiply 4779 | mumble 4780 | mumm 4781 | mummify 4782 | mump 4783 | munch 4784 | municipalize 4785 | munition 4786 | murdabad 4787 | murder 4788 | mure 4789 | murmur 4790 | murther 4791 | muscle 4792 | muse 4793 | mushroom 4794 | muss 4795 | must 4796 | muster 4797 | mutate 4798 | mutch 4799 | mute 4800 | mutilate 4801 | mutiny 4802 | mutter 4803 | mutualize 4804 | muzz 4805 | muzzle 4806 | mystify 4807 | mythicize 4808 | mythologize 4809 | nab 4810 | nag 4811 | nail 4812 | name 4813 | name-drop 4814 | nap 4815 | napalm 4816 | narcotize 4817 | nark 4818 | narrate 4819 | narrow 4820 | nasalize 4821 | nationalize 4822 | natter 4823 | naturalize 4824 | nauseate 4825 | navigate 4826 | naysay 4827 | nazify 4828 | near 4829 | neaten 4830 | nebulize 4831 | necessitate 4832 | neck 4833 | necrose 4834 | need 4835 | needle 4836 | negate 4837 | neglect 4838 | negotiate 4839 | neigh 4840 | neighbour 4841 | neologize 4842 | nerve 4843 | nest 4844 | nestle 4845 | net 4846 | nettle 4847 | network 4848 | neuter 4849 | neutralize 4850 | nibble 4851 | nick 4852 | nickel 4853 | nicker 4854 | nickname 4855 | nictitate 4856 | nid-nod 4857 | nidify 4858 | niello 4859 | niggle 4860 | nigrify 4861 | nip 4862 | nitrify 4863 | nitrogenize 4864 | nix 4865 | nobble 4866 | nock 4867 | nod 4868 | noddle 4869 | noise 4870 | nomadize 4871 | nominate 4872 | nonplus 4873 | nonpros 4874 | nonsuit 4875 | normalize 4876 | normanize 4877 | nose 4878 | nosedive 4879 | nosh 4880 | notarize 4881 | notate 4882 | notch 4883 | note 4884 | notice 4885 | notify 4886 | nourish 4887 | novelize 4888 | nucleate 4889 | nudge 4890 | nullify 4891 | number 4892 | number 4893 | numerate 4894 | nurse 4895 | nurture 4896 | nut 4897 | nuzzle 4898 | oar 4899 | obelize 4900 | obey 4901 | obfuscate 4902 | object 4903 | objectify 4904 | objurgate 4905 | obligate 4906 | oblige 4907 | oblique 4908 | obliterate 4909 | obnubilate 4910 | obscure 4911 | obsecrate 4912 | observe 4913 | obsess 4914 | obsolesce 4915 | obsolete 4916 | obstruct 4917 | obtain 4918 | obtest 4919 | obtrude 4920 | obtund 4921 | obturate 4922 | obvert 4923 | obviate 4924 | occasion 4925 | occidentalize 4926 | occlude 4927 | occult 4928 | occupy 4929 | occur 4930 | ochre 4931 | octuple 4932 | offend 4933 | offer 4934 | officer 4935 | officiate 4936 | offload 4937 | offprint 4938 | offset 4939 | ogle 4940 | oil 4941 | ok 4942 | okay 4943 | old-talk 4944 | omen 4945 | omit 4946 | ooze 4947 | opalesce 4948 | opaque 4949 | ope 4950 | open 4951 | operate 4952 | operatize 4953 | opiate 4954 | opine 4955 | oppilate 4956 | oppose 4957 | oppress 4958 | oppugn 4959 | opsonize 4960 | opt 4961 | optimize 4962 | orate 4963 | orb 4964 | orbit 4965 | orchestrate 4966 | ordain 4967 | order 4968 | organize 4969 | orient 4970 | orientalize 4971 | orientate 4972 | originate 4973 | ornament 4974 | orphan 4975 | oscillate 4976 | osculate 4977 | osmose 4978 | ossify 4979 | ostracize 4980 | ought 4981 | oust 4982 | out 4983 | out-herod 4984 | outbalance 4985 | outbid 4986 | outbrave 4987 | outbreed 4988 | outclass 4989 | outcrop 4990 | outcross 4991 | outcry 4992 | outdate 4993 | outdistance 4994 | outdo 4995 | outface 4996 | outfight 4997 | outfit 4998 | outflank 4999 | outfoot 5000 | outfox 5001 | outgain 5002 | outgas 5003 | outgeneral 5004 | outgo 5005 | outgrow 5006 | outgun 5007 | outjockey 5008 | outlast 5009 | outlaw 5010 | outlay 5011 | outleap 5012 | outline 5013 | outlive 5014 | outman 5015 | outmanoeuvre 5016 | outmarch 5017 | outmatch 5018 | outnumber 5019 | outpace 5020 | outperform 5021 | outplay 5022 | outpoint 5023 | outpour 5024 | outrage 5025 | outrange 5026 | outrank 5027 | outreach 5028 | outride 5029 | outrival 5030 | outrun 5031 | outsail 5032 | outsell 5033 | outshine 5034 | outshoot 5035 | outsmart 5036 | outspan 5037 | outspread 5038 | outstand 5039 | outstay 5040 | outstretch 5041 | outstrip 5042 | outthink 5043 | outvie 5044 | outvote 5045 | outwear 5046 | outweigh 5047 | outwit 5048 | outwork 5049 | over-burden 5050 | over-estimate 5051 | over-expose 5052 | over-heat 5053 | over-simplify 5054 | overachieve 5055 | overact 5056 | overarch 5057 | overawe 5058 | overbalance 5059 | overbear 5060 | overbid 5061 | overblow 5062 | overbuild 5063 | overburden 5064 | overcall 5065 | overcapitalize 5066 | overcharge 5067 | overcloud 5068 | overcome 5069 | overcompensate 5070 | overcook 5071 | overcrop 5072 | overcrowd 5073 | overdevelop 5074 | overdo 5075 | overdose 5076 | overdraw 5077 | overdress 5078 | overdrive 5079 | overdye 5080 | overeat 5081 | overemphasize 5082 | overestimate 5083 | overexert 5084 | overexpose 5085 | overfeed 5086 | overflow 5087 | overfly 5088 | overgrow 5089 | overhand 5090 | overhang 5091 | overhaul 5092 | overhear 5093 | overheat 5094 | overindulge 5095 | overissue 5096 | overjoy 5097 | overland 5098 | overlap 5099 | overlay 5100 | overleap 5101 | overlie 5102 | overlive 5103 | overload 5104 | overlook 5105 | overman 5106 | overmaster 5107 | overmatch 5108 | overpass 5109 | overpay 5110 | overpersuade 5111 | overpitch 5112 | overplay 5113 | overpower 5114 | overpraise 5115 | overprint 5116 | overproduce 5117 | overprotect 5118 | overrate 5119 | overreach 5120 | overreact 5121 | overrefine 5122 | override 5123 | overrule 5124 | overrun 5125 | overscore 5126 | oversee 5127 | oversell 5128 | overset 5129 | oversew 5130 | overshadow 5131 | overshoot 5132 | overshot 5133 | oversimplify 5134 | oversleep 5135 | overspend 5136 | overspill 5137 | overstaff 5138 | overstate 5139 | overstay 5140 | oversteer 5141 | overstep 5142 | overstock 5143 | overstrain 5144 | overstuff 5145 | oversubscribe 5146 | overtake 5147 | overtask 5148 | overtax 5149 | overthrow 5150 | overtime 5151 | overtop 5152 | overtrade 5153 | overtrump 5154 | overture 5155 | overturn 5156 | overvalue 5157 | overwatch 5158 | overweigh 5159 | overweight 5160 | overwhelm 5161 | overwind 5162 | overwinter 5163 | overwork 5164 | overwrite 5165 | oviposit 5166 | ovulate 5167 | owe 5168 | own 5169 | oxidate 5170 | oxidize 5171 | oxygenize 5172 | oyster 5173 | ozonize 5174 | pace 5175 | pacify 5176 | pack 5177 | package 5178 | packet 5179 | pad 5180 | paddle 5181 | padlock 5182 | paganize 5183 | page 5184 | paginate 5185 | pain 5186 | paint 5187 | pair 5188 | pal 5189 | palatalize 5190 | palaver 5191 | pale 5192 | palisade 5193 | palliate 5194 | palm 5195 | palpate 5196 | palpebrate 5197 | palpitate 5198 | palter 5199 | pamper 5200 | pamphleteer 5201 | pan 5202 | pander 5203 | pandy 5204 | panegyrize 5205 | panel 5206 | panhandle 5207 | panic 5208 | pant 5209 | pantomime 5210 | paper 5211 | parabolize 5212 | parachute 5213 | parade 5214 | paragon 5215 | paragraph 5216 | parallel 5217 | paralyze 5218 | paraphrase 5219 | parasitize 5220 | parboil 5221 | parbuckle 5222 | parcel 5223 | parch 5224 | pardon 5225 | pare 5226 | parenthesize 5227 | park 5228 | parlay 5229 | parley 5230 | parleyvoo 5231 | parody 5232 | parole 5233 | parrot 5234 | parry 5235 | parse 5236 | part 5237 | partake 5238 | participate 5239 | particularize 5240 | partition 5241 | partner 5242 | pash 5243 | pass 5244 | passage 5245 | past 5246 | paste 5247 | pasteurize 5248 | pasture 5249 | pat 5250 | patch 5251 | patent 5252 | patrol 5253 | patronize 5254 | patter 5255 | pauperize 5256 | pause 5257 | pave 5258 | pavilion 5259 | paw 5260 | pawn 5261 | pay 5262 | peace 5263 | peach 5264 | peacock 5265 | peak 5266 | peal 5267 | pearl 5268 | pebble 5269 | peck 5270 | pectize 5271 | peculate 5272 | pedal 5273 | peddle 5274 | pedestrianize 5275 | pee 5276 | peek 5277 | peel 5278 | peen 5279 | peep 5280 | peer 5281 | peeve 5282 | peg 5283 | pellet 5284 | pelt 5285 | pen 5286 | penalize 5287 | penance 5288 | pencil 5289 | pend 5290 | penetrate 5291 | peninsulate 5292 | pension 5293 | people 5294 | pep 5295 | pepper 5296 | pepsinate 5297 | peptize 5298 | peptonize 5299 | perambulate 5300 | perceive 5301 | perch 5302 | percolate 5303 | percuss 5304 | peregrinate 5305 | perennate 5306 | perfect 5307 | perforate 5308 | perform 5309 | perfume 5310 | perfuse 5311 | perish 5312 | perjure 5313 | perk 5314 | permeate 5315 | permit 5316 | permute 5317 | perorate 5318 | peroxide 5319 | perpend 5320 | perpetrate 5321 | perpetuate 5322 | perplex 5323 | persecute 5324 | persevere 5325 | persist 5326 | personalize 5327 | personate 5328 | personify 5329 | perspire 5330 | persuade 5331 | pertain 5332 | perturb 5333 | peruse 5334 | pervade 5335 | pervert 5336 | pester 5337 | pestle 5338 | pet 5339 | peter 5340 | petition 5341 | petrify 5342 | pettifog 5343 | phantasy 5344 | phase 5345 | phenolate 5346 | philander 5347 | philosophize 5348 | phlebotomize 5349 | phonate 5350 | phone 5351 | phosphatize 5352 | phosphorate 5353 | phosphoresce 5354 | photocompose 5355 | photocopy 5356 | photoengrave 5357 | photograph 5358 | photolithograph 5359 | photomap 5360 | photosensitize 5361 | photoset 5362 | photostat 5363 | photostat 5364 | photosynthesize 5365 | phototype 5366 | phrase 5367 | physic 5368 | pi 5369 | pick 5370 | pickaxe 5371 | picket 5372 | pickle 5373 | picnic 5374 | picture 5375 | piddle 5376 | piece 5377 | pierce 5378 | piffle 5379 | pig 5380 | pigeonhole 5381 | pigstick 5382 | pike 5383 | pile 5384 | pilfer 5385 | pilgrimage 5386 | pill 5387 | pillage 5388 | pillar 5389 | pillory 5390 | pillow 5391 | pilot 5392 | pimp 5393 | pin 5394 | pinch 5395 | pinchhit 5396 | pine 5397 | pinfold 5398 | ping 5399 | pinion 5400 | pink 5401 | pinnacle 5402 | pinpoint 5403 | pinpoint 5404 | pinprick 5405 | pioneer 5406 | pip 5407 | pipe 5408 | pipeline 5409 | pipette 5410 | pique 5411 | pirate 5412 | pirouette 5413 | pish 5414 | piss 5415 | pistol 5416 | pistolwhip 5417 | pit 5418 | pitapat 5419 | pitch 5420 | pitchfork 5421 | pith 5422 | pitterpatter 5423 | pity 5424 | pivot 5425 | pize 5426 | placard 5427 | placate 5428 | place 5429 | placekick 5430 | plagiarize 5431 | plague 5432 | plain 5433 | plait 5434 | plan 5435 | plane 5436 | plane-table 5437 | planish 5438 | plank 5439 | plant 5440 | plash 5441 | plasmolyze 5442 | plaster 5443 | plasticize 5444 | plate 5445 | platemark 5446 | platinize 5447 | platitudinize 5448 | platonize 5449 | play 5450 | playact 5451 | playback 5452 | pleach 5453 | plead 5454 | please 5455 | pleasure 5456 | pleat 5457 | pledge 5458 | plenish 5459 | plight 5460 | ploat 5461 | plod 5462 | plodge 5463 | plonk 5464 | plop 5465 | plot 5466 | plough 5467 | plow 5468 | pluck 5469 | plug 5470 | plumb 5471 | plume 5472 | plummet 5473 | plump 5474 | plunder 5475 | plunge 5476 | plunk 5477 | pluralize 5478 | ply 5479 | poach 5480 | pocket 5481 | pockmark 5482 | pod 5483 | podzolize 5484 | poetize 5485 | poind 5486 | point 5487 | poise 5488 | poison 5489 | poke 5490 | polarize 5491 | pole 5492 | poleax 5493 | poleaxe 5494 | polevault 5495 | police 5496 | polish 5497 | politicize 5498 | politick 5499 | polka 5500 | poll 5501 | pollard 5502 | pollinate 5503 | pollute 5504 | polymerize 5505 | pomade 5506 | pommel 5507 | ponce 5508 | ponder 5509 | pong 5510 | poniard 5511 | pontificate 5512 | poohpooh 5513 | pool 5514 | poop 5515 | pop 5516 | popple 5517 | popularize 5518 | populate 5519 | pore 5520 | port 5521 | portage 5522 | portend 5523 | portion 5524 | portray 5525 | pose 5526 | posit 5527 | position 5528 | poss 5529 | posse 5530 | possess 5531 | post 5532 | postdate 5533 | postfix 5534 | postil 5535 | postpone 5536 | postulate 5537 | posture 5538 | posturize 5539 | pot 5540 | potentiate 5541 | pother 5542 | potter 5543 | pouch 5544 | poultice 5545 | pounce 5546 | pound 5547 | pour 5548 | poussette 5549 | pout 5550 | powder 5551 | power 5552 | powerdive 5553 | powwow 5554 | practice 5555 | practise 5556 | praise 5557 | prance 5558 | prank 5559 | prate 5560 | prattle 5561 | pray 5562 | pre-digest 5563 | preach 5564 | preachify 5565 | prearrange 5566 | precancel 5567 | precast 5568 | precede 5569 | precess 5570 | precipitate 5571 | precis 5572 | preclude 5573 | preconceive 5574 | precondition 5575 | preconize 5576 | precontract 5577 | predate 5578 | predecease 5579 | predestinate 5580 | predestine 5581 | predetermine 5582 | predicate 5583 | predict 5584 | predigest 5585 | predispose 5586 | predominate 5587 | preempt 5588 | preen 5589 | preexist 5590 | prefabricate 5591 | preface 5592 | prefer 5593 | prefigure 5594 | prefix 5595 | prejudge 5596 | prejudice 5597 | prelect 5598 | prelude 5599 | premeditate 5600 | premier 5601 | premise 5602 | premiss 5603 | premonish 5604 | preoccupy 5605 | preordain 5606 | prepare 5607 | prepay 5608 | preponderate 5609 | prepossess 5610 | prerecord 5611 | preregister 5612 | presage 5613 | prescind 5614 | prescribe 5615 | present 5616 | preserve 5617 | preside 5618 | presignify 5619 | press 5620 | pressgang 5621 | pressure 5622 | pressure-cook 5623 | pressurize 5624 | prestress 5625 | presume 5626 | presuppose 5627 | pretend 5628 | pretermit 5629 | prettify 5630 | prevail 5631 | prevaricate 5632 | prevent 5633 | previse 5634 | prevue 5635 | prey 5636 | price 5637 | prick 5638 | prickle 5639 | pride 5640 | prig 5641 | prill 5642 | prime 5643 | primp 5644 | prink 5645 | print 5646 | prise 5647 | privateer 5648 | privatize 5649 | privilege 5650 | prize 5651 | probe 5652 | proceed 5653 | process 5654 | procession 5655 | proclaim 5656 | procrastinate 5657 | procreate 5658 | procure 5659 | prod 5660 | produce 5661 | profane 5662 | profess 5663 | proffer 5664 | profit 5665 | profiteer 5666 | prog 5667 | prognosticate 5668 | programme 5669 | programtrade 5670 | progress 5671 | prohibit 5672 | project 5673 | prolapse 5674 | proliferate 5675 | prologue 5676 | prolong 5677 | promenade 5678 | promise 5679 | promote 5680 | prompt 5681 | promulgate 5682 | pronate 5683 | prong 5684 | pronominalize 5685 | pronounce 5686 | proof 5687 | proofread 5688 | proofread 5689 | prop 5690 | propagandize 5691 | propagate 5692 | propel 5693 | propend 5694 | prophesy 5695 | propitiate 5696 | proportion 5697 | proportionate 5698 | propose 5699 | proposition 5700 | propound 5701 | prorate 5702 | prorogue 5703 | proscribe 5704 | prose 5705 | prosecute 5706 | proselyte 5707 | proselytize 5708 | prospect 5709 | prosper 5710 | prostitute 5711 | prostrate 5712 | protect 5713 | protest 5714 | protract 5715 | protrude 5716 | protuberate 5717 | prove 5718 | provide 5719 | provision 5720 | provoke 5721 | prowl 5722 | prune 5723 | prussianize 5724 | pry 5725 | psyche 5726 | psycho-analyse 5727 | psychoanalyze 5728 | psychologize 5729 | pubcrawl 5730 | publicize 5731 | publish 5732 | pucker 5733 | puddle 5734 | puff 5735 | pug 5736 | puke 5737 | pule 5738 | pull 5739 | pullulate 5740 | pulp 5741 | pulsate 5742 | pulse 5743 | pulverize 5744 | pummel 5745 | pump 5746 | pun 5747 | punce 5748 | punch 5749 | punctuate 5750 | puncture 5751 | punish 5752 | punt 5753 | pup 5754 | pupate 5755 | pur_ee 5756 | purchase 5757 | purfle 5758 | purge 5759 | purify 5760 | purl 5761 | purloin 5762 | purport 5763 | purpose 5764 | purr 5765 | purse 5766 | pursue 5767 | purvey 5768 | push 5769 | push-start 5770 | pussyfoot 5771 | pustulate 5772 | put 5773 | putput 5774 | putrefy 5775 | putt 5776 | putter 5777 | putty 5778 | puzzle 5779 | pyramid 5780 | quack 5781 | quadrisect 5782 | quadruple 5783 | quadruplicate 5784 | quaff 5785 | quail 5786 | quake 5787 | qualify 5788 | quant 5789 | quantify 5790 | quantize 5791 | quarantine 5792 | quarrel 5793 | quarry 5794 | quarter 5795 | quartersaw 5796 | quash 5797 | quaver 5798 | queen 5799 | queer 5800 | quell 5801 | quench 5802 | query 5803 | quest 5804 | question 5805 | queue 5806 | quibble 5807 | quicken 5808 | quickfreeze 5809 | quickstep 5810 | quiet 5811 | quieten 5812 | quill 5813 | quilt 5814 | quintuple 5815 | quintuplicate 5816 | quip 5817 | quit 5818 | quitclaim 5819 | quiver 5820 | quiz 5821 | quote 5822 | rabbit 5823 | rabble 5824 | race 5825 | racemize 5826 | racketeer 5827 | rackrent 5828 | racquet 5829 | raddle 5830 | radiate 5831 | radio 5832 | radioactivate 5833 | radiotelegraph 5834 | radiotelephone 5835 | raffle 5836 | raft 5837 | rag 5838 | rage 5839 | ragout 5840 | raid 5841 | rail 5842 | railroad 5843 | rain 5844 | rainproof 5845 | raise 5846 | rake 5847 | rally 5848 | ram 5849 | ramble 5850 | ramify 5851 | ramp 5852 | rampage 5853 | rampart 5854 | ranch 5855 | randomize 5856 | range 5857 | rank 5858 | rankle 5859 | ransack 5860 | ransom 5861 | rant 5862 | rap 5863 | rape 5864 | rappel 5865 | rapture 5866 | rarify 5867 | rash 5868 | rasp 5869 | rat 5870 | rate 5871 | ratify 5872 | ratiocinate 5873 | ration 5874 | rationalize 5875 | rattle 5876 | rattoon 5877 | rattoon 5878 | ravage 5879 | rave 5880 | ravel 5881 | ravin 5882 | ravish 5883 | ray 5884 | raze 5885 | razor-cut 5886 | razz 5887 | re-act 5888 | re-afforest 5889 | re-cede 5890 | re-count 5891 | re-cover 5892 | re-create 5893 | re-dress 5894 | re-echo 5895 | re-form 5896 | re-fund 5897 | re-join 5898 | re-present 5899 | re-press 5900 | re-proof 5901 | re-serve 5902 | re-sign 5903 | re-sort 5904 | re-sound 5905 | re-trace 5906 | re-tread 5907 | reach 5908 | react 5909 | reactivate 5910 | read 5911 | readdress 5912 | readjust 5913 | ready 5914 | reaffirm 5915 | realign 5916 | realize 5917 | ream 5918 | reanimate 5919 | reap 5920 | reappear 5921 | reapportion 5922 | reappraise 5923 | rear 5924 | reard 5925 | rearm 5926 | rearrange 5927 | reason 5928 | reassert 5929 | reassign 5930 | reassure 5931 | reave 5932 | rebate 5933 | rebel 5934 | rebellow 5935 | rebound 5936 | rebound 5937 | rebuff 5938 | rebuild 5939 | rebuke 5940 | rebut 5941 | recalculate 5942 | recalesce 5943 | recall 5944 | recant 5945 | recap 5946 | recapitulate 5947 | recapture 5948 | recast 5949 | recce 5950 | recede 5951 | receipt 5952 | receive 5953 | recentralize 5954 | recess 5955 | reciprocate 5956 | recite 5957 | reck 5958 | reckon 5959 | reclaim 5960 | reclassify 5961 | recline 5962 | recognize 5963 | recoil 5964 | recollect 5965 | recommend 5966 | recommit 5967 | recompense 5968 | recompose 5969 | reconcile 5970 | recondition 5971 | reconnect 5972 | reconnoitre 5973 | reconsider 5974 | reconstitute 5975 | reconstruct 5976 | reconvert 5977 | record 5978 | recount 5979 | recoup 5980 | recover 5981 | recreate 5982 | recriminate 5983 | recrudesce 5984 | recruit 5985 | recrystallize 5986 | rectify 5987 | recuperate 5988 | recur 5989 | recurve 5990 | recycle 5991 | red 5992 | redact 5993 | redd 5994 | redden 5995 | reddle 5996 | rede 5997 | redeem 5998 | redeploy 5999 | redesign 6000 | redevelop 6001 | redintegrate 6002 | redirect 6003 | redistribute 6004 | redo 6005 | redouble 6006 | redound 6007 | redpencil 6008 | redraft 6009 | redraw 6010 | redress 6011 | reduce 6012 | reduplicate 6013 | reed 6014 | reef 6015 | reek 6016 | reel 6017 | reelect 6018 | reemphasize 6019 | reenact 6020 | reenter 6021 | reest 6022 | reestablish 6023 | reeve 6024 | reexamine 6025 | reexport 6026 | reface 6027 | refer 6028 | referee 6029 | reference 6030 | refile 6031 | refill 6032 | refinance 6033 | refine 6034 | refit 6035 | reflate 6036 | reflect 6037 | refloat 6038 | reflux 6039 | refocuse 6040 | reforest 6041 | reform 6042 | refract 6043 | refrain 6044 | refresh 6045 | refrigerate 6046 | reft 6047 | refuel 6048 | refuge 6049 | refund 6050 | refurbish 6051 | refuse 6052 | refute 6053 | regain 6054 | regale 6055 | regard 6056 | regelate 6057 | regenerate 6058 | regiment 6059 | register 6060 | regorge 6061 | regrate 6062 | regress 6063 | regret 6064 | regroup 6065 | regularize 6066 | regulate 6067 | regurgitate 6068 | rehabilitate 6069 | rehash 6070 | rehear 6071 | rehearse 6072 | reheat 6073 | rehouse 6074 | reify 6075 | reign 6076 | reignite 6077 | reimburse 6078 | reimport 6079 | rein 6080 | reincarnate 6081 | reindict 6082 | reinforce 6083 | reinstate 6084 | reinstitute 6085 | reinsure 6086 | reintroduce 6087 | reinvent 6088 | reinvest 6089 | reinvigorate 6090 | reissue 6091 | reiterate 6092 | reive 6093 | reject 6094 | rejig 6095 | rejoice 6096 | rejoin 6097 | rejuvenate 6098 | rejuvenesce 6099 | rekindle 6100 | relapse 6101 | relate 6102 | relativize 6103 | relaunch 6104 | relax 6105 | relay 6106 | release 6107 | relegate 6108 | relent 6109 | relieve 6110 | reline 6111 | relinquish 6112 | relish 6113 | relive 6114 | relocate 6115 | reluct 6116 | relumine 6117 | rely 6118 | remain 6119 | remainder 6120 | remake 6121 | remand 6122 | remark 6123 | remarry 6124 | rematch 6125 | remedy 6126 | remember 6127 | remilitarize 6128 | remind 6129 | reminisce 6130 | remise 6131 | remit 6132 | remodel 6133 | remonetize 6134 | remonstrate 6135 | remould 6136 | remount 6137 | remove 6138 | remunerate 6139 | rename 6140 | rencounter 6141 | rend 6142 | render 6143 | rendezvous 6144 | renegotiate 6145 | renegue 6146 | renew 6147 | renounce 6148 | renovate 6149 | rent 6150 | reopen 6151 | reorganize 6152 | reorient 6153 | reorientate 6154 | repackage 6155 | repair 6156 | repartition 6157 | repast 6158 | repatriate 6159 | repay 6160 | repeal 6161 | repeat 6162 | repel 6163 | repent 6164 | rephrase 6165 | repine 6166 | replace 6167 | replay 6168 | replenish 6169 | replevin 6170 | replevy 6171 | replicate 6172 | reply 6173 | repoint 6174 | repone 6175 | report 6176 | repose 6177 | reposit 6178 | reposition 6179 | repossess 6180 | repot 6181 | reprehend 6182 | represent 6183 | repress 6184 | reprieve 6185 | reprimand 6186 | reprint 6187 | reprise 6188 | reproach 6189 | reprobate 6190 | reproduce 6191 | reprove 6192 | republicanize 6193 | repudiate 6194 | repugn 6195 | repulse 6196 | repurchase 6197 | repute 6198 | request 6199 | require 6200 | requisition 6201 | requite 6202 | reread 6203 | reroute 6204 | rerun 6205 | reschedule 6206 | rescind 6207 | rescue 6208 | research 6209 | reseat 6210 | resell 6211 | resemble 6212 | resent 6213 | reserve 6214 | reset 6215 | resettle 6216 | reshape 6217 | reshuffle 6218 | reside 6219 | resign 6220 | resile 6221 | resin 6222 | resinate 6223 | resist 6224 | resit 6225 | resole 6226 | resolve 6227 | resonate 6228 | resorb 6229 | resort 6230 | resound 6231 | respect 6232 | respire 6233 | respite 6234 | respond 6235 | rest 6236 | restate 6237 | restock 6238 | restore 6239 | restrain 6240 | restrict 6241 | restring 6242 | restructure 6243 | resubmit 6244 | result 6245 | resume 6246 | resurface 6247 | resurge 6248 | resurrect 6249 | resuscitate 6250 | ret 6251 | retail 6252 | retain 6253 | retake 6254 | retaliate 6255 | retard 6256 | retch 6257 | retell 6258 | rethink 6259 | reticulate 6260 | retire 6261 | retool 6262 | retort 6263 | retouch 6264 | retrace 6265 | retract 6266 | retread 6267 | retreat 6268 | retrench 6269 | retrieve 6270 | retroact 6271 | retrocede 6272 | retrofit 6273 | retrograde 6274 | retrogress 6275 | retroject 6276 | retrospect 6277 | retry 6278 | return 6279 | reunify 6280 | reunite 6281 | rev 6282 | revalorize 6283 | revalue 6284 | revamp 6285 | reveal 6286 | revegetate 6287 | revel 6288 | revenge 6289 | reverberate 6290 | revere 6291 | reverence 6292 | reverse 6293 | revert 6294 | revest 6295 | revet 6296 | review 6297 | revile 6298 | revise 6299 | revisit 6300 | revitalize 6301 | revive 6302 | revivify 6303 | revoice 6304 | revoke 6305 | revolt 6306 | revolutionize 6307 | revolve 6308 | reward 6309 | rewind 6310 | rewire 6311 | reword 6312 | rework 6313 | rewrite 6314 | rhapsodize 6315 | rhubarb 6316 | rib 6317 | ribbon 6318 | rice 6319 | rick 6320 | ricochet 6321 | rid 6322 | riddle 6323 | ride 6324 | ridge 6325 | ridicule 6326 | riff 6327 | riffle 6328 | rifle 6329 | rift 6330 | rig 6331 | right 6332 | righten 6333 | rigidify 6334 | rile 6335 | rim 6336 | rime 6337 | ring 6338 | rinse 6339 | riot 6340 | rip 6341 | ripen 6342 | riposte 6343 | ripple 6344 | rise 6345 | risk 6346 | ritualize 6347 | rival 6348 | rive 6349 | rivet 6350 | roam 6351 | roar 6352 | roast 6353 | rob 6354 | robe 6355 | rock 6356 | rock-and-roll 6357 | rocket 6358 | rodomontade 6359 | roil 6360 | roister 6361 | roll 6362 | rollerskate 6363 | rollick 6364 | romance 6365 | romanize 6366 | romanticize 6367 | romp 6368 | rone 6369 | roneo 6370 | rontgenize 6371 | roof 6372 | rook 6373 | roose 6374 | roost 6375 | root 6376 | rootle 6377 | roquet 6378 | rosin 6379 | roster 6380 | rot 6381 | rotate 6382 | rouge 6383 | rough 6384 | rough-house 6385 | roughcast 6386 | roughcast 6387 | roughdry 6388 | roughen 6389 | roughhew 6390 | roughhouse 6391 | round 6392 | roup 6393 | rouse 6394 | roust 6395 | rout 6396 | route 6397 | row 6398 | rowel 6399 | rub 6400 | rubber 6401 | rubberize 6402 | rubberneck 6403 | rubberneck 6404 | rubberstamp 6405 | rubbish 6406 | rubefy 6407 | rubricate 6408 | ruck 6409 | ruddle 6410 | rue 6411 | ruff 6412 | ruffle 6413 | ruggedize 6414 | ruin 6415 | rule 6416 | rumble 6417 | ruminate 6418 | rummage 6419 | rumour 6420 | rumple 6421 | run 6422 | rupture 6423 | ruralize 6424 | rush 6425 | russianize 6426 | rust 6427 | rusticate 6428 | rustle 6429 | rut 6430 | saber 6431 | sabotage 6432 | saccharize 6433 | sack 6434 | sacrifice 6435 | sadden 6436 | saddle 6437 | safeconduct 6438 | safeguard 6439 | safety 6440 | sag 6441 | sail 6442 | sain 6443 | saint 6444 | salify 6445 | salivate 6446 | sallow 6447 | sally 6448 | salt 6449 | salute 6450 | salvage 6451 | salve 6452 | samba 6453 | sample 6454 | sanctify 6455 | sanction 6456 | sand 6457 | sand-blast 6458 | sandbag 6459 | sandblast 6460 | sandcast 6461 | sandpaper 6462 | sandwich 6463 | sanforize 6464 | sanitize 6465 | sap 6466 | saponify 6467 | sash 6468 | sass 6469 | sate 6470 | satiate 6471 | satirize 6472 | satisfy 6473 | saturate 6474 | sauce 6475 | saunter 6476 | saut_e 6477 | savage 6478 | save 6479 | savour 6480 | savvy 6481 | saw 6482 | say 6483 | scab 6484 | scabble 6485 | scaffold 6486 | scag 6487 | scald 6488 | scale 6489 | scallop 6490 | scalp 6491 | scamp 6492 | scamper 6493 | scan 6494 | scandal 6495 | scandalize 6496 | scant 6497 | scape 6498 | scar 6499 | scare 6500 | scarf 6501 | scarify 6502 | scarp 6503 | scarper 6504 | scat 6505 | scathe 6506 | scatter 6507 | scavenge 6508 | scend 6509 | scent 6510 | sceptre 6511 | schedule 6512 | schematize 6513 | scheme 6514 | schlep 6515 | schmooze 6516 | school 6517 | schuss 6518 | scintillate 6519 | scissor 6520 | sclaff 6521 | scoff 6522 | scold 6523 | scollop 6524 | sconce 6525 | scoop 6526 | scoot 6527 | scorch 6528 | score 6529 | scorify 6530 | scorn 6531 | scotch 6532 | scour 6533 | scourge 6534 | scout 6535 | scowl 6536 | scrabble 6537 | scrag 6538 | scram 6539 | scramb 6540 | scramble 6541 | scrap 6542 | scrape 6543 | scratch 6544 | scrawl 6545 | screak 6546 | scream 6547 | screech 6548 | screen 6549 | screw 6550 | scribble 6551 | scribe 6552 | scrimmage 6553 | scrimp 6554 | scrimshank 6555 | scrimshaw 6556 | script 6557 | scroll 6558 | scroop 6559 | scrouge 6560 | scrounge 6561 | scrub 6562 | scrum 6563 | scrummage 6564 | scrump 6565 | scrunch 6566 | scruple 6567 | scrutinize 6568 | scry 6569 | scud 6570 | scuff 6571 | scuffle 6572 | scull 6573 | sculpt 6574 | sculpture 6575 | scum 6576 | scumble 6577 | scunge 6578 | scunner 6579 | scupper 6580 | scurry 6581 | scutch 6582 | scutter 6583 | scuttle 6584 | scythe 6585 | seal 6586 | seam 6587 | search 6588 | season 6589 | seat 6590 | secede 6591 | secern 6592 | seclude 6593 | second 6594 | secondguess 6595 | secrete 6596 | sectarianize 6597 | section 6598 | sectionalize 6599 | secularize 6600 | secure 6601 | sedate 6602 | seduce 6603 | see 6604 | seed 6605 | seek 6606 | seel 6607 | seem 6608 | seep 6609 | seesaw 6610 | seethe 6611 | segment 6612 | segregate 6613 | seine 6614 | seise 6615 | seize 6616 | select 6617 | sell 6618 | semaphore 6619 | send 6620 | sendoff 6621 | sense 6622 | sensitize 6623 | sentence 6624 | sentimentalize 6625 | sentinel 6626 | separate 6627 | septuple 6628 | sepulchre 6629 | sequester 6630 | sequestrate 6631 | sere 6632 | serenade 6633 | serialize 6634 | sermonize 6635 | serrate 6636 | serve 6637 | service 6638 | set 6639 | settle 6640 | sever 6641 | sew 6642 | sewer 6643 | sex 6644 | sextuplicate 6645 | shackle 6646 | shade 6647 | shadow 6648 | shadowbox 6649 | shaft 6650 | shag 6651 | shake 6652 | shall 6653 | shallow 6654 | shalt 6655 | sham 6656 | shamble 6657 | shame 6658 | shampoo 6659 | shanghai 6660 | shank 6661 | shape 6662 | share 6663 | sharecrop 6664 | shark 6665 | sharp 6666 | sharpen 6667 | shatter 6668 | shave 6669 | sheaf 6670 | shear 6671 | sheath 6672 | sheathe 6673 | sheave 6674 | shed 6675 | sheen 6676 | sheer 6677 | sheet 6678 | shell 6679 | shellac 6680 | shelter 6681 | shelve 6682 | shend 6683 | shepherd 6684 | sherardize 6685 | shew 6686 | shield 6687 | shift 6688 | shikar 6689 | shillyshally 6690 | shillyshally 6691 | shim 6692 | shimmer 6693 | shimmy 6694 | shin 6695 | shine 6696 | shingle 6697 | shinty 6698 | ship 6699 | shipwreck 6700 | shire 6701 | shirk 6702 | shirr 6703 | shit 6704 | shiver 6705 | shoal 6706 | shock 6707 | shoe 6708 | shoo 6709 | shoogle 6710 | shoot 6711 | shop 6712 | shop-lift 6713 | shore 6714 | short 6715 | short-list 6716 | shortchange 6717 | shortcircuit 6718 | shorten 6719 | shot 6720 | shotgun 6721 | should 6722 | shoulder 6723 | shouldst 6724 | shout 6725 | shove 6726 | shovel 6727 | show 6728 | showcase 6729 | showd 6730 | shower 6731 | shrank 6732 | shred 6733 | shriek 6734 | shrill 6735 | shrimp 6736 | shrine 6737 | shrink 6738 | shrinkwrap 6739 | shrive 6740 | shrivel 6741 | shroff 6742 | shroud 6743 | shrug 6744 | shrunk 6745 | shuck 6746 | shudder 6747 | shuffle 6748 | shun 6749 | shunt 6750 | shush 6751 | shut 6752 | shutter 6753 | shuttle 6754 | shy 6755 | sibilate 6756 | sic 6757 | sicken 6758 | side 6759 | side-dress 6760 | sideline 6761 | sideslip 6762 | sideslip 6763 | sidestep 6764 | sideswipe 6765 | sidetrack 6766 | sidetrack 6767 | sidle 6768 | siege 6769 | sieve 6770 | sift 6771 | sigh 6772 | sight 6773 | sightread 6774 | sightsee 6775 | sign 6776 | signal 6777 | signalize 6778 | signet 6779 | signify 6780 | signpost 6781 | sile 6782 | silence 6783 | silhouette 6784 | silicify 6785 | silk 6786 | silver 6787 | silver-plate 6788 | simmer 6789 | simper 6790 | simplify 6791 | simulate 6792 | simulcast 6793 | sin 6794 | sing 6795 | singe 6796 | single 6797 | single-step 6798 | single-tongue 6799 | singlefoot 6800 | singlespace 6801 | singularize 6802 | sink 6803 | sinter 6804 | sip 6805 | sire 6806 | sit 6807 | site 6808 | situate 6809 | siwash 6810 | size 6811 | sizzle 6812 | sjambok 6813 | skate 6814 | skedaddle 6815 | skeletonize 6816 | skelly 6817 | skelp 6818 | sken 6819 | sket 6820 | sketch 6821 | skewer 6822 | skewer 6823 | ski 6824 | ski-jump 6825 | skid 6826 | skim 6827 | skimp 6828 | skin 6829 | skinnydip 6830 | skinpop 6831 | skip 6832 | skipper 6833 | skirl 6834 | skirmish 6835 | skirr 6836 | skirt 6837 | skite 6838 | skitter 6839 | skive 6840 | skivvy 6841 | skulk 6842 | skunks 6843 | sky 6844 | sky-rocket 6845 | skydive 6846 | skyjack 6847 | skylark 6848 | skyrocket 6849 | slab 6850 | slack 6851 | slacken 6852 | slake 6853 | slalom 6854 | slam 6855 | slander 6856 | slang 6857 | slant 6858 | slap 6859 | slash 6860 | slat 6861 | slate 6862 | slaughter 6863 | slave 6864 | slaver 6865 | slay 6866 | sleave 6867 | sledge 6868 | sledgehammer 6869 | sleek 6870 | sleep 6871 | sleepwalk 6872 | sleet 6873 | sleeve 6874 | sleigh 6875 | slenderize 6876 | sleuth 6877 | slice 6878 | slick 6879 | slide 6880 | slight 6881 | slim 6882 | slime 6883 | sling 6884 | slink 6885 | slip 6886 | slipper 6887 | slipsheet 6888 | slit 6889 | slither 6890 | sliver 6891 | slobber 6892 | slog 6893 | sloganeer 6894 | slop 6895 | slope 6896 | slosh 6897 | slot 6898 | slouch 6899 | slough 6900 | slow 6901 | slue 6902 | sluff 6903 | slug 6904 | sluice 6905 | slum 6906 | slumber 6907 | slump 6908 | slur 6909 | slurp 6910 | slush 6911 | smack 6912 | smarm 6913 | smart 6914 | smarten 6915 | smash 6916 | smatter 6917 | smear 6918 | smell 6919 | smelt 6920 | smile 6921 | smirch 6922 | smirk 6923 | smite 6924 | smock 6925 | smoke 6926 | smooch 6927 | smoodge 6928 | smooth 6929 | smoothen 6930 | smote 6931 | smother 6932 | smoulder 6933 | smudge 6934 | smuggle 6935 | smut 6936 | smutch 6937 | snack 6938 | snaffle 6939 | snafu 6940 | snake 6941 | snap 6942 | snare 6943 | snarl 6944 | snatch 6945 | sneak 6946 | sneck 6947 | sned 6948 | sneer 6949 | sneeze 6950 | snick 6951 | snicker 6952 | sniff 6953 | sniffle 6954 | snigger 6955 | sniggle 6956 | snip 6957 | snipe 6958 | snitch 6959 | snivel 6960 | snog 6961 | snood 6962 | snooker 6963 | snoop 6964 | snooze 6965 | snore 6966 | snorkel 6967 | snort 6968 | snow 6969 | snowshoe 6970 | snub 6971 | snuff 6972 | snuffle 6973 | snug 6974 | snuggle 6975 | soak 6976 | soap 6977 | soar 6978 | sob 6979 | sober 6980 | socialize 6981 | sock 6982 | socket 6983 | sodden 6984 | soft-solder 6985 | soften 6986 | softland 6987 | softpedal 6988 | softsoap 6989 | soil 6990 | sojourn 6991 | solace 6992 | solarize 6993 | solder 6994 | soldier 6995 | sole 6996 | solemnify 6997 | solemnize 6998 | solfa 6999 | solicit 7000 | solidify 7001 | soliloquize 7002 | solo 7003 | solubilize 7004 | solvate 7005 | solve 7006 | somnambulate 7007 | sonnet 7008 | soot 7009 | soothe 7010 | soothsay 7011 | sop 7012 | sophisticate 7013 | sorn 7014 | sorrow 7015 | sort 7016 | sortie 7017 | sough 7018 | sound 7019 | soundproof 7020 | sour 7021 | souse 7022 | sovietize 7023 | sow 7024 | space 7025 | spacewalk 7026 | spade 7027 | spae 7028 | spag 7029 | spall 7030 | span 7031 | spancel 7032 | spangle 7033 | spank 7034 | spar 7035 | spare 7036 | sparge 7037 | spark 7038 | sparkle 7039 | spatter 7040 | spawn 7041 | spay 7042 | speak 7043 | spear 7044 | spearhead 7045 | specialize 7046 | specify 7047 | speckle 7048 | speculate 7049 | speechify 7050 | speed 7051 | spell 7052 | spellbind 7053 | spelunk 7054 | spend 7055 | spew 7056 | spice 7057 | spiel 7058 | spiflicate 7059 | spike 7060 | spile 7061 | spill 7062 | spin 7063 | spin-dry 7064 | spindle 7065 | spiral 7066 | spire 7067 | spiritualize 7068 | spit 7069 | spite 7070 | splash 7071 | splatter 7072 | splay 7073 | splice 7074 | spline 7075 | splint 7076 | splinter 7077 | split 7078 | splodge 7079 | splosh 7080 | splotch 7081 | splurge 7082 | splutter 7083 | spoil 7084 | spoliate 7085 | sponge 7086 | sponsor 7087 | spoof 7088 | spook 7089 | spool 7090 | spoon 7091 | spoon-feed 7092 | spoor 7093 | spore 7094 | sport 7095 | sporulate 7096 | spot 7097 | spot-weld 7098 | spotlight 7099 | spouse 7100 | spout 7101 | sprain 7102 | sprawl 7103 | spray 7104 | spread 7105 | spreadeagle 7106 | sprig 7107 | spring 7108 | spring-clean 7109 | sprinkle 7110 | sprint 7111 | sprout 7112 | spruce 7113 | spruik 7114 | sprung 7115 | spud 7116 | spue 7117 | spume 7118 | spur 7119 | spurn 7120 | spurt 7121 | sputter 7122 | spy 7123 | squabble 7124 | squall 7125 | squander 7126 | square 7127 | squaredance 7128 | squash 7129 | squat 7130 | squawk 7131 | squeak 7132 | squeal 7133 | squeeze 7134 | squelch 7135 | squiggle 7136 | squilgee 7137 | squint 7138 | squire 7139 | squirm 7140 | squirt 7141 | squish 7142 | stab 7143 | stabilize 7144 | stable 7145 | stablish 7146 | stack 7147 | staff 7148 | stage 7149 | stagemanage 7150 | stagger 7151 | stagnate 7152 | stain 7153 | stake 7154 | stale 7155 | stalemate 7156 | stalk 7157 | stall 7158 | stallfeed 7159 | stammer 7160 | stamp 7161 | stampede 7162 | stanchion 7163 | stand 7164 | standardize 7165 | stang 7166 | staple 7167 | star 7168 | starch 7169 | stare 7170 | stargaze 7171 | start 7172 | startle 7173 | starve 7174 | stash 7175 | state 7176 | station 7177 | staunch 7178 | stave 7179 | stay 7180 | stead 7181 | steady 7182 | steal 7183 | steam 7184 | steam-heat 7185 | steamroller 7186 | steamroller 7187 | steel 7188 | steep 7189 | steepen 7190 | steeplechase 7191 | steer 7192 | steeve 7193 | stellify 7194 | stem 7195 | stencil 7196 | stenograph 7197 | step 7198 | stereochrome 7199 | stereotype 7200 | sterilize 7201 | stet 7202 | stevedore 7203 | stew 7204 | steward 7205 | stick 7206 | stickle 7207 | sticky 7208 | stiffen 7209 | stifle 7210 | stigmatize 7211 | still 7212 | stillhunt 7213 | stilt 7214 | stimulate 7215 | sting 7216 | stint 7217 | stipple 7218 | stipulate 7219 | stir 7220 | stitch 7221 | stithy 7222 | stock 7223 | stockade 7224 | stockpile 7225 | stodge 7226 | stoke 7227 | stomach 7228 | stomp 7229 | stone 7230 | stone-wall 7231 | stonewall 7232 | stonk 7233 | stooge 7234 | stook 7235 | stool 7236 | stoop 7237 | stop 7238 | stope 7239 | stopper 7240 | store 7241 | storm 7242 | story 7243 | stot 7244 | stoush 7245 | stove 7246 | stow 7247 | straddle 7248 | strafe 7249 | straggle 7250 | straightarm 7251 | straighten 7252 | strain 7253 | straiten 7254 | strand 7255 | strangle 7256 | strangulate 7257 | strap 7258 | stratify 7259 | stravaig 7260 | straw 7261 | stray 7262 | streak 7263 | stream 7264 | streamline 7265 | strengthen 7266 | stress 7267 | stretch 7268 | strew 7269 | striate 7270 | strickle 7271 | stride 7272 | stridulate 7273 | strike 7274 | string 7275 | strip 7276 | stripe 7277 | strive 7278 | stroke 7279 | stroll 7280 | strongarm 7281 | strop 7282 | strow 7283 | stroy 7284 | structure 7285 | struggle 7286 | strum 7287 | strut 7288 | stub 7289 | stucco 7290 | stud 7291 | study 7292 | stuff 7293 | stultify 7294 | stum 7295 | stumble 7296 | stump 7297 | stun 7298 | stunk 7299 | stunt 7300 | stupefy 7301 | stutter 7302 | sty 7303 | style 7304 | stylize 7305 | stylopize 7306 | stymy 7307 | sub 7308 | subclass 7309 | subcontract 7310 | subculture 7311 | subdivide 7312 | subduct 7313 | subdue 7314 | subedit 7315 | suberize 7316 | subinfeudate 7317 | subirrigate 7318 | subject 7319 | subjectify 7320 | subjoin 7321 | subjugate 7322 | sublease 7323 | sublet 7324 | sublimate 7325 | sublime 7326 | submerse 7327 | subminiaturize 7328 | submit 7329 | subordinate 7330 | suborn 7331 | subpoena 7332 | subrogate 7333 | subscribe 7334 | subserve 7335 | subside 7336 | subsidize 7337 | subsist 7338 | subsoil 7339 | substantialize 7340 | substantiate 7341 | substantivize 7342 | substitute 7343 | substract 7344 | subsume 7345 | subtend 7346 | subtilize 7347 | subtitle 7348 | subtotal 7349 | subtract 7350 | suburbanize 7351 | subvene 7352 | subvert 7353 | succeed 7354 | succour 7355 | succumb 7356 | succuss 7357 | suck 7358 | sucker 7359 | suckle 7360 | sue 7361 | suffer 7362 | suffice 7363 | suffix 7364 | sufflate 7365 | suffocate 7366 | suffumigate 7367 | suffuse 7368 | sugar 7369 | sugarcoat 7370 | suggest 7371 | suit 7372 | sulk 7373 | sully 7374 | sulphate 7375 | sulphonate 7376 | sulphurate 7377 | sulphuret 7378 | sulphurize 7379 | sum 7380 | summarize 7381 | summer 7382 | summersault 7383 | summersault 7384 | summons 7385 | summons 7386 | sun 7387 | sunbathe 7388 | sunder 7389 | sunk 7390 | sup 7391 | superabound 7392 | superadd 7393 | superannuate 7394 | supercalender 7395 | supercede 7396 | supercharge 7397 | supercool 7398 | supererogate 7399 | superfuse 7400 | superheat 7401 | superimpose 7402 | superinduce 7403 | superintend 7404 | superordinate 7405 | superpose 7406 | superscribe 7407 | supersede 7408 | superstruct 7409 | supervene 7410 | supervise 7411 | supinate 7412 | supper 7413 | supplant 7414 | supplement 7415 | supplicate 7416 | supply 7417 | support 7418 | suppose 7419 | suppress 7420 | suppurate 7421 | surcease 7422 | surcharge 7423 | surcingle 7424 | surf 7425 | surface 7426 | surfeit 7427 | surge 7428 | surmise 7429 | surmount 7430 | surname 7431 | surpass 7432 | surprint 7433 | surprise 7434 | surrender 7435 | surrogate 7436 | surround 7437 | surtax 7438 | survey 7439 | survive 7440 | suspect 7441 | suspend 7442 | suspire 7443 | suss 7444 | sustain 7445 | susurrate 7446 | suture 7447 | swab 7448 | swaddle 7449 | swag 7450 | swage 7451 | swagger 7452 | swallow 7453 | swamp 7454 | swank 7455 | swap 7456 | swarm 7457 | swarth 7458 | swash 7459 | swat 7460 | swathe 7461 | sway 7462 | swear 7463 | sweaway 7464 | sweep 7465 | sweeten 7466 | sweettalk 7467 | swell 7468 | swelter 7469 | swerve 7470 | swig 7471 | swill 7472 | swim 7473 | swindle 7474 | swing 7475 | swinge 7476 | swingle 7477 | swink 7478 | swipe 7479 | swirl 7480 | swish 7481 | switch 7482 | swive 7483 | swivel 7484 | swizzle 7485 | swob 7486 | swoon 7487 | swoop 7488 | swoosh 7489 | swop 7490 | swot 7491 | swound 7492 | syllabify 7493 | syllabize 7494 | syllable 7495 | syllogize 7496 | symbol 7497 | symbolize 7498 | symmetrize 7499 | sympathize 7500 | sync 7501 | synchronize 7502 | syncopate 7503 | syncretize 7504 | syndicate 7505 | synonymize 7506 | synopsize 7507 | synthetize 7508 | sypher 7509 | syphon 7510 | syringe 7511 | syrup 7512 | systemize 7513 | table 7514 | tabu 7515 | tabulate 7516 | tack 7517 | tackle 7518 | tag 7519 | tailor 7520 | taint 7521 | take 7522 | talc 7523 | talk 7524 | tallage 7525 | tallow 7526 | tally 7527 | tallyho 7528 | tambour 7529 | tame 7530 | tamp 7531 | tamper 7532 | tampon 7533 | tan 7534 | tangle 7535 | tango 7536 | tantalize 7537 | tap 7538 | tape 7539 | taper 7540 | tar 7541 | tare 7542 | target 7543 | tariff 7544 | tarmac 7545 | tarnish 7546 | tarry 7547 | tartarize 7548 | task 7549 | tassel 7550 | taste 7551 | tat 7552 | tatter 7553 | tattle 7554 | tattoo 7555 | taunt 7556 | tauten 7557 | tautologize 7558 | taway 7559 | taws 7560 | tawse 7561 | tax 7562 | taxi 7563 | te-hee 7564 | teach 7565 | team 7566 | tear 7567 | tease 7568 | teasel 7569 | ted 7570 | tee 7571 | teem 7572 | teeter 7573 | teethe 7574 | telecasted 7575 | telegraph 7576 | telemeter 7577 | telepathize 7578 | telephone 7579 | telescope 7580 | teletype 7581 | televise 7582 | telex 7583 | tell 7584 | tellurize 7585 | telpher 7586 | temper 7587 | tempest 7588 | temporize 7589 | tempt 7590 | tenant 7591 | tend 7592 | tender 7593 | tenderize 7594 | tenon 7595 | tense 7596 | tent 7597 | tenter 7598 | tepefy 7599 | tergiversate 7600 | term 7601 | terminate 7602 | terrace 7603 | terrify 7604 | territorialize 7605 | terrorize 7606 | tessellate 7607 | test 7608 | testdrive 7609 | testfire 7610 | testify 7611 | testmarket 7612 | tetanize 7613 | tether 7614 | teutonize 7615 | thank 7616 | thatch 7617 | thaw 7618 | theologize 7619 | theorize 7620 | thermalize 7621 | thicken 7622 | thieve 7623 | thin 7624 | think 7625 | thirl 7626 | thirst 7627 | thole 7628 | thrall 7629 | thrash 7630 | thread 7631 | threat 7632 | threaten 7633 | threep 7634 | thresh 7635 | thrill 7636 | thrive 7637 | throb 7638 | thrombose 7639 | throne 7640 | throng 7641 | throttle 7642 | throve 7643 | throw 7644 | throwaway 7645 | throwback 7646 | thrum 7647 | thrust 7648 | thud 7649 | thumb 7650 | thumbindex 7651 | thump 7652 | thunder 7653 | thwack 7654 | thwart 7655 | tick 7656 | ticket 7657 | tickle 7658 | ticktock 7659 | tide 7660 | tidy 7661 | tie 7662 | tier 7663 | tiff 7664 | tighten 7665 | tile 7666 | till 7667 | tiller 7668 | tilt 7669 | timber 7670 | time 7671 | tin 7672 | tinct 7673 | tincture 7674 | ting 7675 | tinge 7676 | tingle 7677 | tinker 7678 | tinkle 7679 | tinplate 7680 | tinsel 7681 | tint 7682 | tip 7683 | tipple 7684 | tiptoe 7685 | tire 7686 | tissue 7687 | tithe 7688 | titillate 7689 | titivate 7690 | title 7691 | titrate 7692 | titter 7693 | tittivate 7694 | tittletattle 7695 | tittup 7696 | toady 7697 | toast 7698 | toboggan 7699 | toddle 7700 | toe 7701 | toe-dance 7702 | toenail 7703 | tog 7704 | toggle 7705 | toil 7706 | token 7707 | tolerate 7708 | toll 7709 | tomb 7710 | tone 7711 | tong 7712 | tongue 7713 | tongue-lash 7714 | tonsure 7715 | tool 7716 | toot 7717 | tooth 7718 | tootle 7719 | top 7720 | topdress 7721 | tope 7722 | topple 7723 | topsoil 7724 | torch 7725 | torment 7726 | torpedo 7727 | torrify 7728 | torture 7729 | toss 7730 | tot 7731 | total 7732 | totalize 7733 | tote 7734 | totter 7735 | touch 7736 | touchdown 7737 | touchtype 7738 | toughen 7739 | tour 7740 | tourney 7741 | tousle 7742 | tout 7743 | touzle 7744 | tow 7745 | towel 7746 | trace 7747 | track 7748 | trade 7749 | trademark 7750 | traduce 7751 | traffic 7752 | trail 7753 | train 7754 | traipse 7755 | traject 7756 | tram 7757 | trammel 7758 | tramp 7759 | trample 7760 | trampoline 7761 | trance 7762 | tranquillize 7763 | transact 7764 | transcend 7765 | transcribe 7766 | transect 7767 | transfer 7768 | transfigure 7769 | transfix 7770 | transform 7771 | transfuse 7772 | transgress 7773 | transilluminate 7774 | transistorize 7775 | transit 7776 | translate 7777 | transliterate 7778 | translocate 7779 | transmigrate 7780 | transmit 7781 | transmogrify 7782 | transmute 7783 | transpierce 7784 | transpire 7785 | transplant 7786 | transport 7787 | transpose 7788 | transship 7789 | transubstantiate 7790 | transude 7791 | transvalue 7792 | trap 7793 | trapan 7794 | trapes 7795 | trash 7796 | traumatize 7797 | travail 7798 | travel 7799 | traverse 7800 | travesty 7801 | trawl 7802 | tread 7803 | treadle 7804 | treasure 7805 | treat 7806 | treble 7807 | tree 7808 | trek 7809 | trellis 7810 | tremble 7811 | trench 7812 | trend 7813 | trepan 7814 | trephine 7815 | trespass 7816 | triangulate 7817 | trice 7818 | trichinize 7819 | trick 7820 | trickle 7821 | tricycle 7822 | trifle 7823 | trig 7824 | trigger 7825 | trill 7826 | trim 7827 | trip 7828 | triple 7829 | triple-tongue 7830 | triplicate 7831 | trisect 7832 | tritiate 7833 | triturate 7834 | triumph 7835 | trivialize 7836 | troat 7837 | trode 7838 | trog 7839 | troll 7840 | troop 7841 | tropicalize 7842 | trot 7843 | trouble 7844 | trounce 7845 | troupe 7846 | trow 7847 | trowel 7848 | truant 7849 | truck 7850 | truckle 7851 | trudge 7852 | true 7853 | trump 7854 | trumpet 7855 | truncate 7856 | truncheon 7857 | trundle 7858 | truss 7859 | trust 7860 | try 7861 | tryst 7862 | tub 7863 | tube 7864 | tubulate 7865 | tuck 7866 | tucker 7867 | tuft 7868 | tug 7869 | tumble 7870 | tumefy 7871 | tun 7872 | tune 7873 | tunnel 7874 | tup 7875 | turf 7876 | turmoil 7877 | turn 7878 | turpentine 7879 | turtle 7880 | tusk 7881 | tussle 7882 | tut 7883 | tut-tut 7884 | tutor 7885 | twaddle 7886 | twang 7887 | tweak 7888 | tweet 7889 | tweeze 7890 | twiddle 7891 | twig 7892 | twill 7893 | twin 7894 | twine 7895 | twinge 7896 | twinkle 7897 | twirl 7898 | twist 7899 | twit 7900 | twitch 7901 | twitter 7902 | twotime 7903 | type 7904 | typecast 7905 | typeset 7906 | typewrite 7907 | typify 7908 | tyrannize 7909 | tyre 7910 | uglify 7911 | ulcerate 7912 | ullage 7913 | ululate 7914 | umpire 7915 | unarm 7916 | unbalance 7917 | unbar 7918 | unbelt 7919 | unbend 7920 | unbind 7921 | unbolt 7922 | unbonnet 7923 | unbosom 7924 | unbrace 7925 | unbridle 7926 | unbuckle 7927 | unburden 7928 | unbutton 7929 | uncap 7930 | unchain 7931 | unchurch 7932 | unclasp 7933 | unclog 7934 | unclose 7935 | unclothe 7936 | uncoil 7937 | uncork 7938 | uncouple 7939 | uncover 7940 | uncurl 7941 | undeceive 7942 | underachieve 7943 | underact 7944 | underbid 7945 | underbuy 7946 | undercapitalize 7947 | undercharge 7948 | undercoat 7949 | undercool 7950 | undercut 7951 | underdevelop 7952 | underdrain 7953 | underestimate 7954 | underexpose 7955 | underfeed 7956 | underfund 7957 | undergird 7958 | undergo 7959 | underlay 7960 | underlet 7961 | underlie 7962 | underline 7963 | undermine 7964 | undernourish 7965 | underpay 7966 | underperform 7967 | underpin 7968 | underplay 7969 | underprice 7970 | underprop 7971 | underquote 7972 | underrate 7973 | underscore 7974 | underseal 7975 | undersell 7976 | underset 7977 | undershot 7978 | undersign 7979 | understand 7980 | understate 7981 | understock 7982 | understudy 7983 | undertake 7984 | undertrump 7985 | undervalue 7986 | underwrite 7987 | undo 7988 | undock 7989 | undress 7990 | undulate 7991 | unearth 7992 | unfasten 7993 | unfetter 7994 | unfit 7995 | unfix 7996 | unfold 7997 | unfreeze 7998 | unfrock 7999 | unfurl 8000 | unhair 8001 | unhallow 8002 | unhand 8003 | unharness 8004 | unhelm 8005 | unhinge 8006 | unhook 8007 | unhorse 8008 | uniform 8009 | unify 8010 | unionize 8011 | unite 8012 | universalize 8013 | unkennel 8014 | unknit 8015 | unlace 8016 | unlade 8017 | unlash 8018 | unlatch 8019 | unlay 8020 | unlead 8021 | unlearn 8022 | unleash 8023 | unlimber 8024 | unlive 8025 | unload 8026 | unlock 8027 | unloosen 8028 | unmake 8029 | unman 8030 | unmask 8031 | unmoor 8032 | unmuzzle 8033 | unnerve 8034 | unpack 8035 | unpeg 8036 | unpeople 8037 | unpick 8038 | unpin 8039 | unplug 8040 | unquote 8041 | unravel 8042 | unreason 8043 | unreeve 8044 | unriddle 8045 | unrig 8046 | unrip 8047 | unroll 8048 | unroot 8049 | unsaddle 8050 | unsay 8051 | unscramble 8052 | unscrew 8053 | unseal 8054 | unseam 8055 | unseat 8056 | unsettle 8057 | unsex 8058 | unsheathe 8059 | unship 8060 | unsling 8061 | unsnap 8062 | unsnarl 8063 | unspeak 8064 | unsphere 8065 | unsteady 8066 | unsteel 8067 | unstep 8068 | unstick 8069 | unstop 8070 | unstring 8071 | unsubscribe 8072 | unswear 8073 | untangle 8074 | unteach 8075 | unthink 8076 | unthread 8077 | unthrone 8078 | untidy 8079 | untie 8080 | untread 8081 | untruss 8082 | untuck 8083 | unveil 8084 | unvoice 8085 | unwind 8086 | unwish 8087 | unwrap 8088 | unyoke 8089 | unzip 8090 | up 8091 | up-anchor 8092 | upbraid 8093 | upbuild 8094 | upcast 8095 | update 8096 | upend 8097 | upgrade 8098 | upheave 8099 | uphold 8100 | upholster 8101 | uplift 8102 | uppercase 8103 | uppercut 8104 | upraise 8105 | uprear 8106 | upright 8107 | uprise 8108 | uproot 8109 | uprouse 8110 | upsert 8111 | upset 8112 | upspring 8113 | upstage 8114 | upstart 8115 | upsurge 8116 | upsweep 8117 | upswell 8118 | upswing 8119 | uptilt 8120 | upturn 8121 | urbanize 8122 | urge 8123 | urinate 8124 | urticate 8125 | used 8126 | usher 8127 | usurp 8128 | utilize 8129 | utter 8130 | unlink 8131 | vacate 8132 | vacation 8133 | vaccinate 8134 | vacillate 8135 | vacuum 8136 | vail 8137 | valet 8138 | validate 8139 | valorize 8140 | valuate 8141 | value 8142 | vamoose 8143 | vamp 8144 | vandalize 8145 | vanish 8146 | vanquish 8147 | vaporize 8148 | variegate 8149 | variolate 8150 | varitype 8151 | varnish 8152 | vary 8153 | vassalize 8154 | vat 8155 | vaticinate 8156 | vault 8157 | vaunt 8158 | vector 8159 | veer 8160 | vegetate 8161 | veil 8162 | vein 8163 | velarize 8164 | vellicate 8165 | vend 8166 | veneer 8167 | venerate 8168 | venge 8169 | vent 8170 | ventilate 8171 | ventriloquize 8172 | venture 8173 | verbalize 8174 | verbify 8175 | verge 8176 | verify 8177 | verjuice 8178 | vermiculate 8179 | vernalize 8180 | verse 8181 | versify 8182 | vesicate 8183 | vesiculate 8184 | vest 8185 | vesture 8186 | vet 8187 | veto 8188 | vex 8189 | vibrate 8190 | victimize 8191 | victual 8192 | videotape 8193 | vie 8194 | view 8195 | vignette 8196 | vilify 8197 | vilipend 8198 | vindicate 8199 | vinegar 8200 | vintage 8201 | violate 8202 | visa 8203 | vise 8204 | vision 8205 | visit 8206 | visor 8207 | visualize 8208 | vitalize 8209 | vitiate 8210 | vitrify 8211 | vitriol 8212 | vitriolize 8213 | vittle 8214 | vituperate 8215 | vivify 8216 | vivisect 8217 | vizor 8218 | vocalize 8219 | vociferate 8220 | voice 8221 | void 8222 | volatilize 8223 | volcanize 8224 | volley 8225 | volplane 8226 | volunteer 8227 | vomit 8228 | voodoo 8229 | vote 8230 | vouch 8231 | vouchsafe 8232 | vow 8233 | vowelize 8234 | voyage 8235 | vulcanize 8236 | vulgarize 8237 | wabble 8238 | wad 8239 | waddle 8240 | waddy 8241 | wade 8242 | wadset 8243 | wafer 8244 | waff 8245 | waffle 8246 | waft 8247 | wag 8248 | wage 8249 | wager 8250 | waggle 8251 | waggon 8252 | wagon 8253 | wail 8254 | wainscot 8255 | wait 8256 | waive 8257 | wake 8258 | waken 8259 | wale 8260 | walk 8261 | wall 8262 | wallop 8263 | wallow 8264 | wallpaper 8265 | waltz 8266 | wamble 8267 | wan 8268 | wander 8269 | wane 8270 | wangle 8271 | wank 8272 | wanna 8273 | want 8274 | wanton 8275 | warble 8276 | ward 8277 | ware 8278 | warehouse 8279 | warm 8280 | warn 8281 | warp 8282 | warrant 8283 | warsle 8284 | wash 8285 | wassail 8286 | waste 8287 | watch 8288 | water 8289 | watercool 8290 | watermark 8291 | waterproof 8292 | waterski 8293 | watersoak 8294 | wattle 8295 | waul 8296 | wave 8297 | waver 8298 | wawa 8299 | wawl 8300 | wax 8301 | waxen 8302 | waylay 8303 | weaken 8304 | wean 8305 | wear 8306 | weary 8307 | weather 8308 | weathercock 8309 | weatherproof 8310 | weave 8311 | web 8312 | wed 8313 | wedge 8314 | wee-wee 8315 | weed 8316 | weed 8317 | weekend 8318 | ween 8319 | weep 8320 | weigh 8321 | weight 8322 | welch 8323 | welcome 8324 | weld 8325 | well 8326 | welsh 8327 | welt 8328 | welter 8329 | wench 8330 | wend 8331 | wester 8332 | westernize 8333 | wet 8334 | wetnurse 8335 | whack 8336 | whale 8337 | wham 8338 | whang 8339 | whap 8340 | wharf 8341 | wheedle 8342 | wheel 8343 | wheelbarrow 8344 | wheeze 8345 | whelm 8346 | whelp 8347 | wherrit 8348 | whet 8349 | whicker 8350 | whiff 8351 | whiffle 8352 | whimper 8353 | whine 8354 | whinge 8355 | whinny 8356 | whip 8357 | whipsaw 8358 | whipstitch 8359 | whirl 8360 | whirr 8361 | whish 8362 | whisk 8363 | whisper 8364 | whist 8365 | whistle 8366 | whistlestop 8367 | white 8368 | whiten 8369 | whitewash 8370 | whittle 8371 | whizz 8372 | wholesale 8373 | whoop 8374 | whop 8375 | whore 8376 | widen 8377 | widow 8378 | wield 8379 | wig 8380 | wiggle 8381 | wigwag 8382 | wildcat 8383 | wilder 8384 | wile 8385 | will 8386 | wilt 8387 | wimble 8388 | wimple 8389 | win 8390 | wince 8391 | winch 8392 | wind 8393 | windlass 8394 | windmill 8395 | window 8396 | windowshop 8397 | windrow 8398 | wine 8399 | wing 8400 | wink 8401 | winkle 8402 | winnow 8403 | winter 8404 | winterfeed 8405 | winterize 8406 | winterkill 8407 | wipe 8408 | wire 8409 | wiredraw 8410 | wireless 8411 | wis 8412 | wise 8413 | wisecrack 8414 | wish 8415 | wisp 8416 | wist 8417 | witch 8418 | withdraw 8419 | withe 8420 | wither 8421 | withhold 8422 | withstand 8423 | witness 8424 | wive 8425 | wizen 8426 | wobble 8427 | wolf 8428 | wolfwhistle 8429 | woman 8430 | womanize 8431 | wonder 8432 | wont 8433 | woo 8434 | wood 8435 | woof 8436 | woosh 8437 | word 8438 | work 8439 | work-to-rule 8440 | workharden 8441 | worm 8442 | worrit 8443 | worry 8444 | worsen 8445 | worship 8446 | worst 8447 | worth 8448 | would 8449 | wouldst 8450 | wow 8451 | wrack 8452 | wrangle 8453 | wrapped 8454 | wrapped 8455 | wreak 8456 | wreathe 8457 | wreck 8458 | wrench 8459 | wrest 8460 | wrestle 8461 | wrick 8462 | wriggle 8463 | wring 8464 | wrinkle 8465 | writ 8466 | write 8467 | writhe 8468 | writhen 8469 | wrong 8470 | wrongfoot 8471 | wrought 8472 | wry 8473 | x-ray 8474 | xerox 8475 | xylograph 8476 | yabber 8477 | yacht 8478 | yack 8479 | yammer 8480 | yank 8481 | yap 8482 | yarn 8483 | yaup 8484 | yaw 8485 | yawl 8486 | yawn 8487 | yawp 8488 | yean 8489 | yearn 8490 | yell 8491 | yellow 8492 | yelp 8493 | yield 8494 | yirr 8495 | yoke 8496 | york 8497 | yowl 8498 | zap 8499 | zero 8500 | zest 8501 | zigzag 8502 | zindabad 8503 | zing 8504 | zip 8505 | zone 8506 | zoom 8507 | zugzwang 8508 | --------------------------------------------------------------------------------