Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
83523d4
Fixing typos that we spotted on the FAIRmat side given that we use cs…
atomprobe-tc Jul 14, 2025
5579d7e
add spellchecker in CI/CD and Makefile
lukaspie Jul 16, 2025
9446a8b
fix spelling in applications and base classes
lukaspie Aug 25, 2025
aa8275e
remove unused words
lukaspie Aug 25, 2025
42f906e
use scientific_terms_US dictionary
lukaspie Aug 26, 2025
07da317
update to newest npm
lukaspie Aug 26, 2025
2e6fa17
remove words that exist in other dictionaries
lukaspie Aug 26, 2025
77fae63
use global install in workflow
lukaspie Aug 26, 2025
6b3cfef
clean up typos in contributed_definitions
lukaspie Aug 26, 2025
e356fac
clean up use of en-UK
lukaspie Aug 26, 2025
716016d
some more typo fixes
lukaspie Aug 26, 2025
b4af87d
Implemented @PeterC-DLS comments
atomprobe-tc Sep 8, 2025
aec4092
Iterating to a compromise for Peter's comments
atomprobe-tc Sep 8, 2025
ea31729
One more occurrence
atomprobe-tc Sep 8, 2025
f22e097
Fixed spurious typing error, and made use of hashmark consistent
atomprobe-tc Sep 9, 2025
cfb6468
Fixed spurious typing error
atomprobe-tc Sep 9, 2025
f965ee6
Adding another suggestion for apm
atomprobe-tc Sep 9, 2025
fa46697
Working in further comments from PeterC-DLS
atomprobe-tc Sep 10, 2025
1c6bf6d
Scripting from Peter and response from cspell via CI gives mismatch w…
atomprobe-tc Sep 10, 2025
e635ec7
Ran script on spellcheck CI raw log when using an empty custom-dictio…
atomprobe-tc Sep 10, 2025
6ab6345
Indeed much better only a few German umlaut containing custom words t…
atomprobe-tc Sep 10, 2025
1afe2d4
Have we catched them all now?
atomprobe-tc Sep 10, 2025
7bd40f8
Merge branch 'main' into spellcheck
atomprobe-tc Sep 10, 2025
0d3bc1c
Following the request from the 2025/09/16 telco to kick integration o…
atomprobe-tc Sep 16, 2025
92da25b
Removal of make file target spellcheck as it will enforce a currently…
atomprobe-tc Sep 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
533 changes: 533 additions & 0 deletions .cspell/custom-dictionary.txt

Large diffs are not rendered by default.

31 changes: 31 additions & 0 deletions .github/workflows/spellcheck.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Spell Check

on:
pull_request:
paths:
- "applications/**/*"
- "base_classes/**/*"
- "contributed_definitions/**/*"

jobs:
spellcheck:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install dependencies and dictionary
run: |
npm install -g cspell jq @cspell/dict-scientific-terms-us

- name: Run cspell and format results
run: |
cspell --config cspell.json "applications/**/*" "base_classes/**/*" "contributed_definitions/**/*"

- name: Fail on errors
run: |
if [[ $? -ne 0 ]]; then
echo "There are spelling errors in your code. Please fix them and try again."
exit 1
fi
6 changes: 6 additions & 0 deletions Makefile
Comment thread
lukaspie marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ help ::
@echo "make autoformat Format all files to the coding style conventions."
@echo "make test Run NXDL syntax and documentation tests."
@echo "make clean Remove all build files."
@echo "make spellcheck Run a spellcheck across all definitions."
@echo "make prepare (Re)create all build files."
@echo "make html Build HTML version of manual. Requires prepare first."
@echo "make pdf Build PDF version of manual. Requires prepare first."
Expand Down Expand Up @@ -64,6 +65,11 @@ clean ::
$(RM) -rf $(APPDEF_DIR)/$(NYAML_SUBDIR)
$(RM) -rf $(CONTRIB_DIR)/$(NYAML_SUBDIR)

spellcheck ::
@command -v cspell >/dev/null 2>&1 || { echo >&2 "cspell is not installed. Install it with: npm install -g cspell"; exit 1; }
@echo "Running spellcheck with cspell..."
cspell --config cspell.json "${APPDEF_DIR}/**/*" "${BASE_CLASS_DIR}/**/*" "${CONTRIB_DIR}/**/*"

prepare ::
$(PYTHON) -m dev_tools manual --prepare --build-root $(BUILD_DIR)
$(PYTHON) -m dev_tools impatient --prepare --build-root $(BUILD_DIR)
Expand Down
4 changes: 2 additions & 2 deletions applications/NXapm.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@
NXapm defines constraints on the existence and cardinality of concepts and its concept branches but seeks to
offer a compromise. The key design pattern followed is that most branches are made optional or at most recommended
but their child concepts are conditionally required. Thereby, NXapm can cover a variety of simple but also complex
use cases. An example of this parent-optional-but-childs-stronger-restricted design is the combination of the
use cases. An example of this parent-optional-but-children-stronger-restricted design is the combination of the
optional group ``measurement`` with its required child ``measurement/instrument``:
Users which report simulations are not forced to document the instrument but users which have characterized
a specimen are motivated to report about the instrument. They are though not necessarily required to report all
Expand All @@ -203,7 +203,7 @@
events that can be time-stamped individually.
Each instance of a group ``measurement/eventID`` contains ``measurement/instrument`` whose purpose is to
store those specific state and settings of the instrument that was present during the collection of the event.
Thereby, changing conditions such as compaigns with different target detection rate can be stored.
Thereby, changing conditions such as campaigns with different target detection rate can be stored.

Noteworthy, such an approach of the atom probe detecting groups of events and storing these as groups has also
been in use in the proprietary software via CamecaRoot, a set of customized data structures and file formats that use
Expand Down
2 changes: 1 addition & 1 deletion applications/NXarchive.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2008-2024 NeXus International Advisory Committee (NIAC)
# Copyright (C) 2008-2025 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
Expand Down
2 changes: 1 addition & 1 deletion applications/NXcanSAS.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2012-2024 NeXus International Advisory Committee (NIAC)
# Copyright (C) 2012-2025 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
Expand Down
2 changes: 1 addition & 1 deletion applications/NXdirecttof.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2008-2024 NeXus International Advisory Committee (NIAC)
# Copyright (C) 2008-2025 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
Expand Down
2 changes: 1 addition & 1 deletion applications/NXem.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@
relevant. NXem defines constraints on the existence and cardinality of concepts and its concept branches
but seeks to offer a compromise. The key design pattern followed is that most branches are made optional
or at most recommended but their child concepts conditional required. Thereby, NXem can cover a variety
of simple but also complex use cases. An example of this parent-optional-but-childs-stronger-restricted design
of simple but also complex use cases. An example of this parent-optional-but-children-stronger-restricted design
is the combination of the optional group ``measurement`` with its required child
``measurement/instrument``: Users which report simulations are not forced to document the instrument
but users which have characterized a sample are motivated to report about the instrument. They are though not
Expand Down
2 changes: 1 addition & 1 deletion applications/NXlauetof.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2008-2024 NeXus International Advisory Committee (NIAC)
# Copyright (C) 2008-2025 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
Expand Down
2 changes: 1 addition & 1 deletion applications/NXmx.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2013-2024 NeXus International Advisory Committee (NIAC)
# Copyright (C) 2013-2025 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
Expand Down
2 changes: 1 addition & 1 deletion base_classes/NXatom.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@
<field name="nuclide_list" type="NX_UINT" units="NX_UNITLESS">
<doc>
Table which decodes the entries in nuclide_hash into a human-readable matrix
instances for either nuclids or elements. Specifically, the first row specifies the
instances for either nuclides or elements. Specifically, the first row specifies the
nuclide mass number. When the nuclide_hash values are used this means
the row should report the sum :math:`Z + N` or 0. The value 0 documents that
an element from the IUPAC periodic table is meant.
Expand Down
2 changes: 1 addition & 1 deletion base_classes/NXattenuator.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2008-2024 NeXus International Advisory Committee (NIAC)
# Copyright (C) 2008-2025 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
Expand Down
2 changes: 1 addition & 1 deletion base_classes/NXcomponent.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
via the NXtransformations group.

NeXus positions components by applying a set of translations and rotations
to the component starting from 0, 0, 0. The order of these operations
to apply to the component starting from 0, 0, 0. The order of these operations
is critical and forms what NeXus calls a dependency chain. The depends_on
field defines the path to the top most operation of the dependency chain or the
string "." if located in the origin. Usually these operations are stored in a
Expand Down
2 changes: 1 addition & 1 deletion base_classes/NXelectromagnetic_lens.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
Base class for an electro-magnetic lens or a compound lens.

For :ref:`NXtransformations` the origin of the coordinate system is placed
in the center of the lens its polepiece, pinhole, or another point of reference.
in the center of the lens its pole piece, pinhole, or another point of reference.
The origin should be specified in the :ref:`NXtransformations`.

For details of electro-magnetic lenses in the literature see e.g.
Expand Down
2 changes: 1 addition & 1 deletion base_classes/NXem_ebsd.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
From this point onwards typically the microscope runs automatically.

Diffraction pattern get collected until the queue finishes or gets interrupted by
either errors or arrival at the end of the users' allocated timeslot at the instrument.
either errors or arrival at the end of the users' allocated time slot at the instrument.

Kikuchi pattern (EBSP) are usually indexed on-the-fly. These patterns are the raw data.
Once indexed, these patterns are often not stored.
Expand Down
4 changes: 2 additions & 2 deletions base_classes/NXpid_controller.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
* K_ff

A classic PID controller only implements the P, I and D terms and the values of the K_p, K_i and K_d constants are sufficient to fully
describe the behaviour of the feedback system implemented by such a PID controller. The inclusion of a Feed Forward term in a feedback system
describe the behavior of the feedback system implemented by such a PID controller. The inclusion of a Feed Forward term in a feedback system
is a modern adaptation that aids optimization of the automated control. It is not present in all PID controllers, but it is also not uncommon.

Note that the ``NXpid_controller`` is designed to be a child object of the actuator that its output is connected to. The parent object
Expand Down Expand Up @@ -130,7 +130,7 @@
the Process Variable that is lower than the Setpoint results in a positive Error Value and a generally positive
control output that tells the actuator to push the value of the Process Variable upwards. In some implementations,
the actuator will respond to a more positive control output by pushing the Process Variable towards lower values (e.g.
a Peltier cooler) and so the output of the feedback system must be reversed to match the behaviour of the physical system.
a Peltier cooler) and so the output of the feedback system must be reversed to match the behavior of the physical system.
A feedback system may also be implemented with reverse action in order to ensure that failures (e.g. disconnected sensor
output or actuator input) result in a safe state (e.g. a valve should be left open to release pressure).
</doc>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
check the respective group in the NXapm_paraprobe_results_nanochem data
schema/application definition.
</doc>
<!--by default for appdefs the value of the exists keyword is required
<!--by default for application definitions the value of the exists keyword is required
unless it is explicitly specified differently-->
<group type="NXentry" minOccurs="1" maxOccurs="1">
<attribute name="version">
Expand Down Expand Up @@ -99,7 +99,7 @@ for if desired all the dependencies and libraries-->
</field>
<field name="description" optional="true">
<doc>
Disencouraged place for free-text for e.g. comments.
Discouraged place for free-text for e.g. comments.
</doc>
</field>
<field name="start_time" type="NX_DATE_TIME">
Expand Down Expand Up @@ -233,7 +233,7 @@ inspect the example of the NXem_ebsd application definition-->
</enumeration>
</field>
<field name="cardinality" type="NX_POSINT" units="NX_UNITLESS"/>
<!--default behaviour, if no coordinate system defined, unclear
<!--default behavior, if no coordinate system defined, unclear
if one coordinate system is defined the origin is defined in this cs-->
<field name="origin" type="NX_NUMBER" units="NX_LENGTH">
<dimensions rank="1">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ n_disjoint_clusters: Number of disjoint cluster.-->
Configuration of a paraprobe-clusterer tool run in atom probe microscopy.
</doc>
<group type="NXentry">
<!--by default for appdefs the value of the exists keyword is required
<!--by default for application definitions the value of the exists keyword is required
unless it is explicitly specified differently-->
<attribute name="version">
<doc>
Expand Down Expand Up @@ -146,7 +146,7 @@ unless it is explicitly specified differently-->
<!--mapping_method:
doc: |
How should cluster labels be created from the cluster_labels information
especially when these areNcluste floating point values.
especially when these are Ncluster floating point values.
enumeration: [take_as_is, use_dictionary]
mapping_dictionary_keyword(NX_NUMBER):
doc: |
Expand Down Expand Up @@ -294,7 +294,7 @@ mapping_dictionary_value(NX_UINT):
and how the multiplicity of each ion will be factorized.

This is relevant as in atom probe we have the situation that a ion
of a molecular ion with more than one nuclid, say Ti O for example
of a molecular ion with more than one nuclide, say Ti O for example
is counted such that although there is a single TiO molecular ion
at a position that the cluster has two members. This multiplicity
affects the size of the feature and chemical composition.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
Configuration of a paraprobe-intersector tool run in atom probe microscopy.
</doc>
<group type="NXentry">
<!--by default for appdefs the value of the exists keyword is required
<!--by default for application definitions the value of the exists keyword is required
unless it is explicitly specified differently-->
<attribute name="version">
<doc>
Expand Down Expand Up @@ -102,7 +102,7 @@ unless it is explicitly specified differently-->
Members of a so-called current_set to members of a so-called next_set.
Members can be different types of volumetric features.
In the analysis of M. Kuehbach et al. specifically features can be
so-called objects (closed non-degnerated polyhedra representing watertight
so-called objects (closed non-degenerated polyhedra representing watertight
parts of an e.g. iso-surface) and/or proxies. Proxies are computed
doppelganger/replacement meshes for parts of an iso-surface which initially
were not resulting in watertight meshes because objects at the edge
Expand Down Expand Up @@ -243,14 +243,14 @@ unless it is explicitly specified differently-->
</field>
<field name="groupname_geometry_prefix">
<doc>
String whereby the path to the geometry data can be interferred automatically.
String whereby the path to the geometry data can be inferred automatically.
Currently groupname_geometry_prefix/object&lt;ID&gt;/polyhedron.
</doc>
</field>
<field name="feature_identifier" type="NX_UINT" units="NX_UNITLESS">
<doc>
Array of identifier whereby the path to the geometry data
can be interferred automatically.
can be inferred automatically.
</doc>
<dimensions rank="1">
<dim index="1" value="i"/>
Expand Down Expand Up @@ -323,14 +323,14 @@ unless it is explicitly specified differently-->
</field>
<field name="groupname_geometry_prefix">
<doc>
String whereby the path to the geometry data can be interferred automatically.
String whereby the path to the geometry data can be inferred automatically.
Currently groupname_geometry_prefix/object&lt;ID&gt;/polyhedron.
</doc>
</field>
<field name="feature_identifier" type="NX_UINT" units="NX_UNITLESS">
<doc>
Array of identifier whereby the path to the geometry data
can be interferred automatically.
can be inferred automatically.
</doc>
<dimensions rank="1">
<dim index="1" value="j"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,7 @@ and this does not work because without a delocalization/field quantity you canno
`B. Gault et al. &lt;https://doi.org/10.1017/S1431927621012952&gt;`_
In continuation of these thoughts this applies also to reconstructed
objects. A well-known example is the discussion of shape deviations
of Al3Sc precipitates in aluminium alloys which in reconstructions
of Al3Sc precipitates in aluminum alloys which in reconstructions
can appear as ellipsoids although they should be almost spherical,
depending on their size.
</doc>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
Configuration of a paraprobe-ranger tool run in atom probe microscopy.
</doc>
<group type="NXentry">
<!--by default for appdefs the value of the exists keyword is required
<!--by default for application definitions the value of the exists keyword is required
unless it is explicitly specified differently-->
<attribute name="version">
<doc>
Expand Down Expand Up @@ -232,7 +232,7 @@ unless it is explicitly specified differently-->
<doc>
Report the accumulated atomic mass from each isotope building the ion.
Accounts for each identified ion.
Relatistic effects are not accounted for.
Relativistic effects are not accounted for.
</doc>
</field>
<field name="store_natural_abundance_product" type="NX_BOOLEAN">
Expand All @@ -241,7 +241,7 @@ unless it is explicitly specified differently-->
the ion. Accounts for each identified ion.

The value zero indicates it is not possible to build such molecular ion
from nuclids which are all observationally stable.
from nuclides which are all observationally stable.
Very small values can give an idea/about how likely such a molecular ion
is expected to form assuming equal probabilities.

Expand All @@ -267,7 +267,7 @@ store_composition_weighted_product(NX_BOOLEAN):
It should not be forgotten though the computation relies on assumptions:

* The composition is homogeneous within the virtual specimen.
* It is a priori know which nuclids the specimen is build of.
* It is a priori know which nuclides the specimen is build of.
-->
<field name="store_charge_state" type="NX_BOOLEAN">
<doc>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
Configuration of a paraprobe-selector tool run in atom probe microscopy.
</doc>
<group type="NXentry">
<!--by default for appdefs the value of the exists keyword is required
<!--by default for application definitions the value of the exists keyword is required
unless it is explicitly specified differently-->
<attribute name="version">
<doc>
Expand Down
Loading