Fix spelling (#445)

diff --git a/README.md b/README.md
index 4c6764e..0c13d32 100644
--- a/README.md
+++ b/README.md
@@ -74,7 +74,7 @@
 
 The criteria for adding a new function or module to this repository are:
 
-1. Is it widely needed? The new code must solve a problem that occurs often during the development of Bazel build rules. It is not sufficient that the new code is merely useful.  Candidate code should generally have been proven to be necessary across several projects, either because it provides indispensible common functionality, or because it requires a single standardized implementation.
+1. Is it widely needed? The new code must solve a problem that occurs often during the development of Bazel build rules. It is not sufficient that the new code is merely useful. Candidate code should generally have been proven to be necessary across several projects, either because it provides indispensable common functionality, or because it requires a single standardized implementation.
 
 1. Is its interface simpler than its implementation? A good abstraction provides a simple interface to a complex implementation, relieving the user from the burden of understanding. By contrast, a shallow abstraction provides little that the user could not easily have written out for themselves. If a function's doc comment is longer than its body, it's a good sign that the abstraction is too shallow.
 
diff --git a/docs/expand_template_doc.md b/docs/expand_template_doc.md
index 698fede..6d6dd2a 100755
--- a/docs/expand_template_doc.md
+++ b/docs/expand_template_doc.md
@@ -1,6 +1,6 @@
 <!-- Generated with Stardoc: http://skydoc.bazel.build -->
 
-A rule that performes template expansion.
+A rule that performs template expansion.
 
 
 <a id="expand_template"></a>
diff --git a/docs/maintainers_guide.md b/docs/maintainers_guide.md
index 6c06a3f..f5408ce 100644
--- a/docs/maintainers_guide.md
+++ b/docs/maintainers_guide.md
@@ -25,7 +25,7 @@
 1.  In the first place, avoid adding insufficiently thought out, insufficiently
     tested features which will later need to be replaced in a
     backwards-incompatible manner. See the criteria in README.md.
-2.  Given a choice between breaking backwards compatibilty and keeping it, try
+2.  Given a choice between breaking backwards compatibility and keeping it, try
     to keep backwards compatibility. For example, if adding a new argument to a
     function, add it to the end of the argument list, so that existing callers'
     positional arguments continue to work.
diff --git a/docs/private/stardoc_with_diff_test.bzl b/docs/private/stardoc_with_diff_test.bzl
index 9fe425b..d6b2c15 100644
--- a/docs/private/stardoc_with_diff_test.bzl
+++ b/docs/private/stardoc_with_diff_test.bzl
@@ -33,7 +33,7 @@
         out_label):
     """Creates a stardoc target coupled with a `diff_test` for a given `bzl_library`.
 
-    This is helpful for minimizing boilerplate in repos wih lots of stardoc targets.
+    This is helpful for minimizing boilerplate in repos with lots of stardoc targets.
 
     Args:
         name: the stardoc target name
diff --git a/gazelle/bzl/gazelle.go b/gazelle/bzl/gazelle.go
index 433be6a..94c32e9 100644
--- a/gazelle/bzl/gazelle.go
+++ b/gazelle/bzl/gazelle.go
@@ -173,7 +173,7 @@
 
 		if impLabel.Repo != "" || !c.IndexLibraries {
 			// This is a dependency that is external to the current repo, or indexing
-			// is disabled so take a guess at what hte target name should be.
+			// is disabled so take a guess at what the target name should be.
 			deps = append(deps, strings.TrimSuffix(imp, fileType))
 			continue
 		}
diff --git a/gazelle/bzl/testdata/README.md b/gazelle/bzl/testdata/README.md
index a6a3603..b498c66 100644
--- a/gazelle/bzl/testdata/README.md
+++ b/gazelle/bzl/testdata/README.md
@@ -3,7 +3,7 @@
 This directory contains a suite of test cases for the Skylark language plugin
 for Gazelle.
 
-Please note that there are no `BUILD` or `BUILD.bazel` files in subdirs, insted
+Please note that there are no `BUILD` or `BUILD.bazel` files in subdirs, instead
 there are `BUILD.in` and `BUILD.out` describing what the `BUILD` should look
 like initially and what the `BUILD` file should look like after the run. These
 names are special because they are not recognized by Bazel as a proper `BUILD`
diff --git a/gazelle/bzl/testdata/empty/BUILD.in b/gazelle/bzl/testdata/empty/BUILD.in
index e1e154c..ce5d4cc 100644
--- a/gazelle/bzl/testdata/empty/BUILD.in
+++ b/gazelle/bzl/testdata/empty/BUILD.in
@@ -2,7 +2,7 @@
 
 bzl_library(
     name = "weirdly_named_target_that_will_be_removed",
-    srcs = ["nonexistant.bzl"],
+    srcs = ["nonexistent.bzl"],
     visibility = ["//visibility:public"],
 )
 
diff --git a/rules/expand_template.bzl b/rules/expand_template.bzl
index 96bff44..f933500 100644
--- a/rules/expand_template.bzl
+++ b/rules/expand_template.bzl
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-"""A rule that performes template expansion.
+"""A rule that performs template expansion.
 """
 
 def _expand_template_impl(ctx):
diff --git a/tests/diff_test/diff_test_tests.sh b/tests/diff_test/diff_test_tests.sh
index 294bfa2..9fffcc6 100755
--- a/tests/diff_test/diff_test_tests.sh
+++ b/tests/diff_test/diff_test_tests.sh
@@ -207,15 +207,15 @@
 }
 
 function test_directory_named_external_with_legacy_external_runfiles() {
-  assert_simple_diff_test "--enable_runfiles --legacy_external_runfiles" "${FUNCNAME[0]}" "path/to/direcotry/external/in/name/"
+  assert_simple_diff_test "--enable_runfiles --legacy_external_runfiles" "${FUNCNAME[0]}" "path/to/directory/external/in/name/"
 }
 
 function test_directory_named_external_without_legacy_external_runfiles() {
-  assert_simple_diff_test "--enable_runfiles --nolegacy_external_runfiles" "${FUNCNAME[0]}" "path/to/direcotry/external/in/name/"
+  assert_simple_diff_test "--enable_runfiles --nolegacy_external_runfiles" "${FUNCNAME[0]}" "path/to/directory/external/in/name/"
 }
 
 function test_directory_named_external_with_manifest() {
-  assert_simple_diff_test "--noenable_runfiles" "${FUNCNAME[0]}" "path/to/direcotry/external/in/name/"
+  assert_simple_diff_test "--noenable_runfiles" "${FUNCNAME[0]}" "path/to/directory/external/in/name/"
 }
 
 function test_from_ext_repo_with_legacy_external_runfiles() {
diff --git a/tests/selects_tests.bzl b/tests/selects_tests.bzl
index a7697f2..8227bf8 100644
--- a/tests/selects_tests.bzl
+++ b/tests/selects_tests.bzl
@@ -261,7 +261,7 @@
 )
 
 def _and_config_setting_group_multiple_matches_fail_test():
-    """Test verifying multple conditions mismatch on an ANDing config_setting_group."""
+    """Test verifying multiple conditions mismatch on an ANDing config_setting_group."""
     boolean_attr_rule(
         name = "and_config_setting_group_multiple_matches_fail_rule",
         myboolean = select(
@@ -453,7 +453,7 @@
 )
 
 def _or_config_setting_group_multiple_conds_match_test():
-    """Test verifying multple conditions matching on an ORing config_setting_group."""
+    """Test verifying multiple conditions matching on an ORing config_setting_group."""
     boolean_attr_rule(
         name = "or_config_setting_group_multiple_conds_match_rule",
         myboolean = select(
diff --git a/tests/unittest.bash b/tests/unittest.bash
index da37cb6..9a9a7a5 100755
--- a/tests/unittest.bash
+++ b/tests/unittest.bash
@@ -238,7 +238,7 @@
 
 # Force XML_OUTPUT_FILE to an existing path
 if [ -z "${XML_OUTPUT_FILE:-}" ]; then
-  XML_OUTPUT_FILE=${TEST_TMPDIR}/ouput.xml
+  XML_OUTPUT_FILE=${TEST_TMPDIR}/output.xml
 fi
 
 #### Global variables: