Automattic / Automattic/harper

Harper does not seem to utilise a dictionary aware of enough technical terminology

Open
#1,494 9 comments 2 reactions 0 assignees View on GitHub
bug dictionary harper-core linting
Dominant language
Rust
Stars
15.4k
Forks
627
Avg merge
1d 15h
Merged PRs (30d)
102

Description

## Description

Having used Harper for a few days, I've repeatedly come across terminology and jargon which Harper doesn't know.

## Resources

To demonstrate, I've found some lists of technical terminology, formatted them as a markdown unordered list which I then pasted into the text box on https://writewithharper.com/ (to see the full list of issues). Note: I have not filtered these lists at all, they include some terminology which Harper knows.

Programming terms from hackterms.com

source: https://www.hackterms.com/about/all

Note: everything is lowercase, including acronyms, which leads to quite a few more valid lints than false-negatives

```
- a*
- a11y
- abend
- absolute path
- abstract class
- abstract data type
- abstraction
- acceptance testing
- accessibility
- acme
- actionscript
- address resolution protocol (arp)
- address space layout randomization
- adger
- afaict
- ahk
- ajax
- algebraic data type
- algorithm
- allocation
- alpha
- amd64
- analog
- android
- angularjs
- anonymous function
- ansible
- anti-pattern
- apache lucene
- apache pig
- apache solr
- api (application programming interface)
- appcache
- appkit
- ar (augmented reality)
- architecture
- arguments
- aria
- arity
- array
- array index
- array instance
- array list
- arrow functions
- asic
- assembler
- assembly language
- assignment statement
- assistive technology
- associative array (php)
- ast (abstract syntax tree)
- asynchronous
- atom
- atomic operation
- authentication
- authorization
- auto id
- awk
- aws
- axios
- azure
- ba (business analyst)
- babel
- back-end
- backlog
- backronym
- backup
- bag of words
- bang
- bar
- bar code
- barb
- bash
- basic
- batch
- baz
- bc (backwards compatibility)
- bc (business continuity)
- best practice
- beta
- bi (business intelligence)
- big bang
- big data
- big o
- big-endian
- bikeshedding
- binary
- binary operator
- binary search tree
- binary tree
- bit
- bit bang
- bit rot
- bitbucket
- bitcoin
- bitmask
- bitwise operators
- black hat hacker
- blender
- blob (binary large object)
- blockchain
- blue team
- bodge
- bogon
- bogosort
- boilerplate code
- boolean
- bootstrap
- borked
- bot
- botnet
- bounce
- bower
- box
- boxen
- boyscouting
- brackets (text editor)
- brainfuck
- branch and bound
- brogrammer
- browser
- brute force
- bsod
- buffer
- bug
- build
- build or buy
- build out
- build up
- builder
- bundler
- byte
- bytecode
- c (language)
- c#
- c++
- cache
- call stack
- callback
- callback hell
- calling a function
- camel case
- canvas (html)
- captcha
- cargo culting
- carthage
- cassandra
- cast
- category
- category theory
- cdn (content delivery network)
- celery
- change control management
- changelog
- checkout
- chrome
- chronicle queue
- ci
- circleci
- cisc
- clang
- class
- cli
- client
- client-server model
- client-side
- clobber
- clojure
- clone and go
- closed source
- closed-form expression
- closure
- cloud
- cmd
- cms (content management system)
- cnd (content delivery network)
- cobol
- cochcarna
- cocoa
- code
- code bloat
- code debt
- code monkey
- code review
- code rot
- code smell
- codebase
- codeigniter
- coding
- coffee
- coffeescript
- cohesion
- cold site
- collision
- colorzilla
- command
- command pattern
- commit (git)
- comparison operators
- compiled language
- compiler
- component
- composer (php)
- compression
- computer appliance
- computer language
- concurrency
- conditional execution
- conditionals
- configurable logic blocks
- confluence
- connascence
- console
- constant
- constant time
- constructor
- continuous delivery
- continuous deployment
- continuous integration
- contravariance
- contravariant functor
- convention over configuration
- conway's law
- cookie
- coq
- core data
- core memory
- coroutine
- coupling
- covariance
- cpq
- cqrs
- cqs
- create-react-app
- cron
- cron job
- cross-platform
- crud (create, read, update, delete)
- cruft
- crystal
- css
- css framework
- ctf
- currying
- cursor
- cve
- cyclomatic complexity
- c艹
- daemon
- dag
- dance of death
- dart
- data class
- data dictionary
- data race
- data science
- data store
- data structure
- data transfer object
- database
- database index
- ddd
- ddos
- deadlock
- debugger
- debugging
- decimal
- declaration
- declarative programming
- decompilation
- decomposition
- decoupling
- deep learning
- defense in depth
- deferred
- delegate
- delegation
- delphi
- delta
- denormalize
- dependency
- dependency hell
- dependency injection
- dependency management
- deploy
- deprecated
- dereference
- dereference a null pointer
- design for maintainability
- design pattern
- development hell
- devops
- diamond of death
- diaper
- dictionary
- digital
- dijkstra's algorithm
- directed acyclic graph
- directed graph
- directive
- distributed data protocol (ddp)
- div soup
- divide and conquer
- django
- dnf
- dns (domain name system)
- docker
- docusaurus
- domain-specific language
- dongle
- dos
- downcasting
- dp (data processing)
- dp9ik
- dr (disaster recovery)
- drink your own champagne
- dry code
- dry principle (don't repeat yourself)
- dsl (domain specific language)
- duck punching
- duck typing
- duff's device
- dummy
- dx (developer experience)
- dynamic programming
- dynamic typing
- dynamicate
- eafp
- eager loading
- eating your own dog food (dogfooding)
- ec2
- ecc
- eclipse
- ecm
- ecmascript
- ecs
- ed (text editor)
- edge
- edge case
- edi
- edison reset
- edr
- ejs (embedded javascript)
- electron
- eli5
- elixir
- elk
- elm
- else
- elvis operator
- emacs
- emmet
- encapsulation
- encryption
- end user
- end-of-life
- endpoint
- enum
- environment
- ephemeral
- epoch
- error
- es6
- esb
- esoteric language
- etl (extract transform load)
- everything is a file
- exception
- express.js
- f#
- faas
- facade
- factoring
- factory
- fairlop
- fake
- false
- faq (frequently asked questions)
- feature
- fedora
- fiddler
- fifo
- filan
- fildil
- finite state machine
- firefox
- first-class object
- fkp
- flask
- flatten (array)
- flexbox
- float (floating point)
- flow
- flutter
- flux
- font
- foo
- foobar
- foreign key
- fork
- fork bomb
- form
- forth
- fortran
- foss
- fpga
- framer.js
- framework
- free software
- freemarker
- front-end
- fsck
- fsck up
- fsm
- fte
- fubar
- full stack developer
- function
- functional programming
- functional test
- functor
- future
- fuzz testing
- fuzzing
- fuzzy search
- g11n
- garbage collection
- gc
- gdpr
- gem (ruby)
- generational garbage collection
- generic programming
- genetic algorithm
- gis
- git
- git blame
- github
- gitversion
- glitch
- glob
- globalization
- globbing
- gnu
- gnu/linux
- go
- god class
- godot
- golang
- golden hammer
- google analytics
- google apps script
- gopher
- goroutine
- gradient descent
- gradle
- graph
- graph theory
- gray hat hacker
- greenfield
- grep
- grok
- groovy
- grunt
- gsp
- gts
- guard clause
- guava
- gulp
- hack
- hacking
- hackintosh
- hadoop
- handle
- handlebars.js
- happy path scenario
- haptics
- hash
- hash map
- haskell
- hateoas
- haxe
- heap
- heisenbug
- hell
- hello world
- heroku
- hex
- hexadecimal
- hft
- high-level
- highlander
- hkt
- hoc (higher order component)
- hofstadter's law
- hollerith code
- hooking
- horizontal scaling
- hosting
- hot code
- hot site
- hsm
- html
- http
- http status code
- http/2
- https
- hungarian notation
- hyper
- hypermedia
- i/o
- i18n
- id10t
- ide (integrated development environment)
- idempotent
- idris
- ieee 754
- ietf
- if
- if else
- if it ain't broke don't fix it
- iframe
- iife
- imap
- immutable object
- imperative programming
- impersonation
- implementation
- implementation detail
- impure function
- include guard
- indentation
- induction
- inferno-os
- infinite loop
- inheritance
- inheritance chain
- inpc
- input
- instance
- instantiate
- instruction set architecture
- integer
- integration test
- interface
- internationalization
- internet
- interpreter
- interrupt
- invariance
- invariant
- inversion of control
- iot
- ip (intellectual property)
- ip (internet protocol)
- ipc
- it (information technology)
- iterable
- iterate
- iterator
- jargon file
- java
- javafx
- javascript
- jaws
- jekyll
- jenkins
- jhipster
- jira
- jit
- jquery
- json (javascript object notation)
- jsx
- junior developer
- just works
- jvm
- jwt (json web token)
- k8s
- kanban
- kata
- kebab case
- kernel
- key value pair
- kill -9
- kiss
- kludge
- kotlin
- kubernetes
- l10n
- lambda function
- laragon
- laravel
- latency
- lazy evaluation
- lazy loading
- leaf node
- lean software development
- least significant bit
- legacy code
- less
- let statement
- lexeme
- lexer
- lexing
- lgtm
- library
- lifecycle (rendering)
- linked list
- linker
- linter
- linux
- lisp
- list (python)
- list comprehension
- little-endian
- llvm
- load balancing
- loc (lines of code)
- local maxima
- local minima
- localization
- localstorage
- log shipping
- lolcode
- long-term support
- loop
- loose coupling
- low-level
- lru cache
- lts
- lua
- lzw
- machine code
- machine learning
- machine word
- macos
- magic
- magic number
- magic rebuild fairy
- magic smoke
- mainframe
- malbolge
- malloc
- malware
- man month
- man-in-the-middle attack
- map reduce
- markdown
- markup language
- master
- materialize
- matlab
- matrix
- maven
- maybe
- memoization
- memory
- memory leak
- metadata
- metaprogramming
- metasploit
- meteor
- method
- microservices
- middleware
- minify
- mob programming
- mocha
- mock
- modal
- monad
- mongodb
- mongoose
- monkey patch
- mono
- monoid
- monospace
- most significant bit
- mre (minimal reproducible example)
- multidimensional array
- multimedia
- multiple inheritance
- mutability
- mvc (massive view controller)
- mvc (model, view, controller)
- mvn
- mvp (minimum viable product)
- mvp (model, view, presenter)
- mvvm (model-view-viewmodel)
- mysql
- mythical man month
- namespace
- namespace collision
- nas
- natural language processing (nlp)
- ncat
- negative test
- netbeans
- netcat
- network
- new testament
- next.js
- nfc
- nibble
- nil
- nim
- nmap
- noc
- node
- node.js
- nodejs
- noob
- normalization
- nosql
- notepad++
- npe
- npm
- nuget
- nuke
- null
- null pointer
- null pointer exception
- nvda
- oauth
- obfuscation
- object
- object initializer
- object-oriented programming (oop)
- object-relational mapping (orm)
- objective-c
- ocaml
- ocr
- offshore
- oltp
- omgifu call
- omgwdid call
- one way hash
- open source
- opencv
- opengl
- openssl
- opera
- opera gx
- operating system
- opinionated
- ops
- optimization
- orm
- orthogonal
- os
- osi model
- output
- overhead
- overkill
- overload
- override
- p5.js
- package manager
- package.json
- packing
- padding
- paging
- pair programming
- paradigm
- parameter object
- parameters
- parse
- parser
- partial application
- pass by reference
- pass by value
- password
- pathfinding
- pawn
- pci standards
- pebcak
- pebkac
- penetration testing
- pep
- performance test
- perl
- pfm
- php
- phreaking
- pi
- picnic
- pig latin
- pii
- pip
- pit of success
- pki
- plan 9
- pmbok
- pmo
- pmp (project management professional)
- po
- poco
- pointer
- pojo
- pokemon exception handling
- polling
- polyfill
- polymorphism
- pop3
- port
- postgresql
- postman
- pots (plain old telephone service)
- pr
- pre-alpha
- predicate
- prelude
- preprocessor
- primary key
- printf debugging
- procan
- procedural programming
- processing
- prod
- product manager (pm)
- production environment
- programmer
- programming language
- project management
- project manager
- promise
- prop drilling
- props (react)
- protobuf
- prototype
- prototypical inheritance
- pseudocode
- ptal
- public
- public-key encryption
- pure function
- push
- push (git)
- python
- q#
- qa
- ql
- qos (quality of service)
- qr code
- qt
- query
- queue
- r (language)
- rabbitmq
- race condition
- raid
- raii
- rails (ruby on rails)
- rainbow table
- ram
- ransomware
- raster graphics
- rc
- react.js
- reactify
- readme
- recovery
- recursion
- recursive acronym
- red box
- red team
- redis
- reducer (redux)
- redux
- refactoring
- reference counting
- referential transparency
- regex
- regression
- regression testing
- relational database
- release candidate
- render
- repl
- repo (git repository)
- reproduce
- request-response
- requirements creep
- rest
- rest api
- retrovision
- return
- return-oriented programming
- reverse engineering
- reverse shell
- rfc
- rfid
- rfp (request for proposal)
- ricef
- risc
- root node
- round robin
- router
- rpc
- rpg (report program generator)
- rpn (reverse polish notation)
- rss
- rtfm
- rubber duck
- rubber duck debugging
- ruby
- rubygems
- runtime
- rust
- rvo
- s3
- saas
- safari
- sakura
- salt
- salting
- sam
- san
- sap
- sass
- sbo
- scalability
- scale out
- scale up
- scheduling
- schema
- scheme
- scm
- scope
- scotty
- scratch
- screen reader
- screen scraping
- script kiddie
- scrum
- scss
- sdlc (software development life cycle)
- sed
- segfault (segmentation fault)
- self-documenting code
- semantic html
- semantic version
- semaphore
- semigroup
- sendy
- seo
- serialization
- servant
- server
- server-side rendering (ssr)
- serverless
- service level agreement (sla)
- service level objective (slo)
- session
- shadowing
- sharding
- shared library
- shell
- shift
- shitcode
- signed integer
- simd
- sinatra
- single page application (spa)
- single pane of glass
- single-responsibility principle
- singleton pattern
- site reliability engineering (sre)
- slack
- slit
- sloc
- smoke test
- smoke testing
- snake case
- snmp
- soa
- soap
- socat
- solid
- soundex
- source maps
- sow (statement of work)
- spaghetti code
- spark
- sparse matrix
- special form
- spoofing
- spool
- spring boot
- sprint
- spy
- sql
- sql injection
- ssas
- ssd
- ssh
- ssis
- ssl
- sso
- ssrs
- stack
- stack overflow
- stage
- staging environment
- stakeholder
- standard library
- star schema
- state
- static (java keyword)
- static analysis
- static library
- static typing
- stop word
- stored procedure
- storm
- strategy pattern
- string
- string interpolation
- strong typing
- strongly typed
- stub
- subarray
- sublime text
- substring
- sudo
- superset
- sut (system under test)
- svelte
- swe
- swift
- swift playgrounds
- swizzle
- symfony
- symlink
- symmetrical-key algorithm
- syntactic sugar
- syntax
- syscall
- system32
- table
- table stakes
- tail call optimization
- tarball
- task runner
- tco (total cost of ownership)
- tcp/ip
- tech debt
- technical debt
- terminal
- ternary operator
- test
- test double
- test driven development (tdd)
- tester
- testing
- testing word
- text editor
- third normal form
- thrash
- threading
- throw catch
- thunk
- tight coupling
- time complexity
- time-sharing
- tla
- tle
- tls
- tmux
- toil
- toolchain
- tostring
- tracing garbage collection
- trainwreck
- transpile
- transpiler
- traveling salesman problem
- tree
- trigger
- trojan power source
- true
- ttl (time to live)
- tuple
- tuple (python)
- turing machine
- turing test
- turing-complete
- two factor authentication
- type erasure
- type safety
- type system
- typeless
- typescript
- ub (undefined behavior)
- ui (user interface)
- ui ux
- uikit
- uml
- unary operator
- undirected graph
- unicode
- unit record equipment
- unit test
- unit type
- unity
- unix
- unsigned integer
- upcasting
- upsert
- upstream
- uri (uniform resource identifier)
- url (uniform resource locator)
- use after free
- use strict
- user
- userland
- ux (user experience)
- v8
- vanilla javascript
- vector graphics
- vectorization
- vertical scaling
- vi
- vibe coding
- view
- vim
- viper
- virtual machine
- visual basic
- visual studio
- visual studio code
- voiceover
- void
- voip (voice over ip)
- volumetrics
- vr (virtual reality)
- vs code
- vue.js
- vulkan
- warm site
- waterfall
- waving a dead chicken
- wbs
- weak reference
- weak typing
- web development
- webhook
- webpack
- webpacker
- webscale
- websocket
- webvr
- webxr
- welf
- wet
- wget magic
- while loop
- white hat hacker
- white paper
- whitespace
- windows
- wip
- wireframe
- wordpress
- work products
- workflow
- wpf
- wrapper
- wrapper class
- wygiwyg
- wysiwyg
- x86
- xcode
- xml
- xtla
- y2k
- yagni
- yak shaving
- yesod
- yum
- zero-indexed
- zsh
- other
- .net
- .net core
- .net framework
- .net standard
- /dev/null
- 10x
- 1337
- 2600
- 2d array
- 3nf
- 400
- 418
- 500 internal server error
- 9front
- 9p
```


List of engineering terminology from wiktionary

This list was extracted from the site: https://kaikki.org/dictionary/English/topics/jI/engineering/index.html which provides a machine-readable version of Wiktionary. I used the deprecated output at the bottom, and converted it a list of terms with this jq command: `jq -r 'select(.lang==\"English\") | (.word? // .forms[].form) | \"- \(.)\"' ./kaikki.org-dictionary-English-topic-engineering.jsonl`

Here is an excerpt, the full thing is very long:
```- equiconcave
- epic
- AVL
- autoloader
- stiffware
- Microhoo
- dead code
- infinite loop
- main gauche
- pclk
- BBN
- signalling event
- metaspace
- dither
- dither
- paper cut
- minimin
- Javalike
- unicast
- unicast
- subsubroutine
- totalistic
- megaflops
- nonfree
- graphician
- nonwindowed
- multicolumn
- multijoin
- ruleset
- all-in-one
- multidrop
- multidrop
- fifteener
- hammerless
- nonstreaming
- laptronica
- medical examiner
- solar sail
- photon sail
- light sail
- unhold
- PHPer
- stdin
- stdout
- stderr
- brinelling
- brinelled
- unshare
- undeletion
- datum circle
- datum surface
- blittable
- Fortranlike
- repro
- repro
- keymapping
- femtocell
- dot matrix printer
- flying mouse
- normal form
- nontemporal
- chipless
- X out
- multibooting
- fenestron
- UCA
- CLDR
- LDML
- FQI
- plasmasonic
- multistream
- z-fighting
- cursorless
- passwordless
- nonhacker
- previewer
- unbookmarked
- nonmemory
- nonprinting
- hackerish
- grain refiner
- nonnull
- nonunary
- catapeltic
- catapeltic
- nonadministrator
- Lisplike
- nonstateful
- tilebased
- SPARQL
- alloyant
- changeset
- bugfix
- nondeprecated
- flat file
- PAPA
- feechur
- GTP
- frob
- homegroup
- CPAN
- anycast
- idiomorph
- LEM
- LM
- SPS
- SPS
- multiserver
- pie menu
- Bailey bridge
- Mabey bridge
- rocketplane
- goroutine
- ECMA
- typeahead
- tight loop
- folderlike
- connectionless
- critical section
- storage medium
- shovelware
- print out
- KDD
- Pg Up
- Pg Dn
- intercloud
- resmelt
- RCAF
- CAF
- ringdown
- multidirectory
- macrolike
- MMC
- CMM
- autologin
- RLE
- bootsplash
- plug and play
- run-length encoding
- semi-infinite
- semisimple
- flatfield
- isogeny
- sexp
- S-expression
- symbolic expression
- palette swap
- palette swap
- palette window
- pageable
- center mark
- multipath
- autohide
- multiselection
- triplestore
- functorial
- intercycle
- unicodification
- OEL
- multihop
- ray casting
- RAII
- deinitialize
- deinitialization
- load time
- noncaching
- gridline
- snapline
- smallcap
- listserver
- preselection
- square wave
- CLR
- CLR
- PCA
- transactionality
- isoplanatic
- metadynamics
- intelligent system
- computational intelligence
- DND
- uniprocessor
- suber
- bitness
- classloader
- classloading
- JAPH
- bootability
- multicasting
- portscan
- portscan
- superpolynomial
- livelocked
- web application
- multigrid
- multigrid
- multicollision
- quasirandom
- D/L
- D/L
- data binding
- parallelizability
- multihopping
- binarization
- afterburning
- backout
- nonpipelined
- nonscrolling
- viewport
- viewport
- subchunk
- precache
- cepstrum
- metamodel
- metaservice
- statechart
- subcycling
- nonrecoil
- semicomputable
- trial balloon
- ERV
- interplane
- crapplet
- data cube
- save down
- metaobject
- deallocation
- comonad
- KLOC
- pseudotype
- focalization
- autoredirection
- subgame
- RAS
- duplexer
- datasheet
- deserializer
- serializer
- cracktro
- invitro
- prewarmed
- antireflection
- votesheet
- megademo
- booter
- biomodelling
- crosshead
- demomaker
- musicdisk
- metaball
- glenzing
- Perlin noise
- hypertexture
- hypertexture
- heightmap
- colormap
- texturizer
- backpressure
- localhost
- BCPL
- namevoting
- copyparty
- escaper
- intercontinental ballistic missile
- ASM
- FSM
- FIN
- GIB
- GBR
- LSO
- MDA
- MHL
- MNP
- MSR
- MRT
- NER
- SDN
- SLV
- SWE
- SVN
- TGO
- TKL
- trackmo
- FO
- FO
- FK
- bignum
- TEL
- MQ
- PID
- argumentless
- WF
- subword
- subword
- MPBR
- TAP
- AHO
- seminumerical
- policer
- 757
- MFC
- MFC
- scrolltext
- eurodemo
- noncoder
- gamma iron
- iron carbide
- Austenite
- ferric carbide
- nondefault
- cementation
- wyde
- AltGr
- Alt Gr
- malvertising
- lightmap
- specific thrust
- computing language
- strong typing
- keystream
- backlink
- failback
- caret notation
- Windoze
- Windross
- Page Down
- Page Up
- num lock
- wildcarding
- subquadratic
- scroll lock
- software escrow
- polytime
- il. col.
- afocal
- character user interface
- supernode
- shadebob
- gas generator
- savefile
- subtransaction
- linearithmic
- subarray
- oword
- octoword
- bitemporal
- crimeware
- overstrike
- load up
- unijunction
- chemical rocket
- bottom out
- system pull
- biclustering
- bicluster
- unpark
- flow control
- colimit
- 303
- black chamber
- three-finger salute
- scumware
- retained mode
- immediate mode
- hackery
- sublogarithmic
- VU meter
- lexical analysis
- subwindow
- droppable
- exascale
- interoperation
- passthrough
- nonclustered
- eigenface
- unnoble
- blind hole
- white label
- composability
- notam
- XAML
- variadic
- variadic
- autovector
- pretranslation
- neck down
- Y10K
- cloner
- dequantize
- response time
- CPU time
- metacircular
- snackbar
- Russification
- flatpack
- nonpaged
- treewidth
- BSL
- fluxonium
- flightworthy
- bullpup
- minify
- minification
- async
- nonasynchronous
- feedreader
- hydraulic radius
- templatizable
- unsharp
- subpath
- refractory metal
- QKD
- hang fire
- ISV
- ASA character
- line printer
- carriage control character
- read-eval-print loop
- landing page
- split horizon
- 6in4
- tunnel broker
- natting
- firing pin
- saddle ring
- astroinformatics
- astrostatistics
- voiceband
- von Neumann machine
- transformator
- pseudodata
- inode
- flowcharting
- zone punch
- cmd
- knightship
- speed-dial
- mark and sweep
- distance vector
- link state
- F/O
- CCM
- subterm
- arc welding
- on base
- multi-touch
- multi-touch
- inlead
- inlead
- ZWNJ
- ZWJ
- SODIMM
- SO-DIMM
- raycaster
- prefs
- inband
- red-black tree
- supercookie
- unswizzle
- BFC
- iconless
- x86
- protected mode
- real mode
- deblock
- deblocked
- VLIW
- unpassworded
- geodatabase
- DTO
- prelight
- RTF
- waker
- autoindexing
- nongreedy
- d/l
- d/l
- abfarad
- short finals
- abvolt
- abwatt
- nondirty
- Saturn V
- microapp
- antidictionary
- precomposed
- localizer
- biosimulation
- wadcutter
- Nosler
- JRE
- preread
- arraylike
- marshaler
- unhashed
- bit depth
- yottabit
- DDL
- APU
- RPP
- nondeclarative
- vtable
- net-zero
- dynamization
- windage
- responsor
- kayles
- autorotation
- sys
- awaiter
- nonpolling
- fillrate
- renderable
- devkit
- upcall
- subcommand
- beta reduce
- Yue
- deadstick
- deadstick
- decentre
- patcher
- wristguard
- recordset
- Stillson wrench
- tommy bar
- parallel port
- supersample
- beta reduction
- SLOC
- workalike
- rebuffer
- rebuffering
- nonpaging
- semirigid
- new up
- pseudonymized
- autodeletion
- left-drag
- right-drag
- input/output
- housekeep
- nonspace
- computation history
- Ma Bell
- multisampling
- metamethod
- metatable
- nonqueuing
- multisample
- sight in
- upsetter
- nematicon
- prebaking
- chromeless
- bitboard
- bitset
- CLUT
- game port
- flaskless
- segmentation fault
- multipartition
- subcube
- schemaless
- WAE
- declarator
- stigmatism
- unreserve
- pushdown
- shapelet
- LEC
- tebibit
- terabit
- quadbit
- GSA
- sublanguage
- nonbooting
- automounter
- automount
- automount
- SxS
- superpixel
- EAS
- multifactor
- multibuffered
- LUN
- Sukhoi
- filter bank
- oplock
- network neutrality
- nonidling
- band-stop
- Mannlicher stock
- NIS
- URBI
- urbiscript
- garbage in, garbage out
- procedure division
- data division
- identification division
- environment division
- data entry
- pythonic
- configuration section
- input-output section
- file section
- working-storage section
- linkage section
- JCL
- undefine
- hacking run
- schlockware
- misclick
- misclick
- radio-telephone
- microoperation
- waitable
- unmarshal
- antijoin
- terascale
- pathname
- SEAT
- multibuffering
- negative-edge-triggered
- negative edge
- toolpath
- Winblows
- Microshaft
- palettization
- modeless
- modelessness
- breechblock
- nondialup
- linemode
- suboption
- vuln
- go-around
- premaster
- reskin
- informetrics
- autofill
- combined cycle
- prepopulate
- antiplane
- stationkeeping
- strickle
- terreplein
- antibacklash
- sploit
- translational bioinformatics
- planoconcave
- planoconvex
- wingsuit
- keyway
- tailwheel
- PDLC
- stego
- stego
- baby duck syndrome
- filestore
- permutator
- reparent
- nondraggable
- aberrator
- nonsmart
- pseudorelational
- multitenant
- multilink
- QT
- dequantization
- derotation
- call graph
- i/o
- ACP
- picture box
- dedent
- dedent
- relightable
- retopology
- SVGA
- nonmodem
- modemless
- multisession
- zero-zero
- scenegraph
- autoblock
- autoblock
- RIA
- spherocylinder
- CSM
- LHX
- JSF
- F/A
- nonpointer
- fileserver
- softmodem
- Winmodem
- jump drive
- subprocedure
- running target
- VNE
- ABAC
- autonumbering
- autonumbered
- unauthed
- paper ticket
- DFSG
- DIMM
- TV tuner
- memoried
- QVT
- SDL
- RESTful
- writeback
- ringback
- JSR
- readahead
- spooler
- data-bound
- multimediocrity
- endofunctor
- onion skinning
- LUG
- unencode
- uuencode
- left inverse
- minisupercomputer
- Crayette
- readback
- socketless
- WORA
- WORE
- content repository
- test harness
- FDK
- no-fly list
- FAT
- VFAT
- FATX
- exFAT
- FAT64
- FAT12
- FAT16
- FAT32
- planform
- retrig
- retrig
- lifelog
- lifelog
- binary-compatible
- stop off
- PS/2
- PS1
- PS/1
- PS3
- portscanner
- bi-endian
- anigif
- anycasting
- superglobal
- pingee
- pseudocoding
- codestream
- FTE
- nondomain
- multitaskable
- rubout
- dict
- manpage
- blade server
- mousework
- unassemble
- blort
- disambiguator
- byter
- prehard
- preharden
- bar stock
- skydome
- kernel space
- cyberzine
- JSDK
- JSWDK
- demin
- refarming
- MIC
- artboard
- backspaceable
- unzipper
- TAPI
- oblivious transfer
- overpunch
- A.C.
- Cheshire cat
- GID
- pad down
- phugoid
- phugoid
- multischema
- zeroable
- Pixie
- RMI
- RMI
- JDK
- IIOP
- RMI-IIOP
- JNI
- JMX
- AWT
- AWT
- J2EE
- J2SE
- JavaME
- JavaSE
- JavaEE
- command-line interpreter
- CLDC
- JTWI
- MMAPI
- WMA
- WMA
- PBP
- EVP
- JAD
- WTK
- multipost
- unbrick
- JCP
- SNAP
- reset button
- recompilable
- compilability
- OTA
- type safety
- vblank
- hblank
- netphone
- webphone
- bolt-on
- quadcore
- cableco
- TLI
- GTO
- LLO
- L3
- CTS
- deoptimize
- rematerialization
- not invented here
- constness
- protothread
- stackless
- ORM
- SCJP
- CLOS
- ++
- hyperslice
- WAIS
- null modem
- rollover cable
- IDE cable
- SATA cable
- floptical disk
- conventional memory
- base memory
- extended memory
- impact printer
- low cost carrier
- PSPO
- PSM
- platin
- VLSI
- ULSI
- obturation
- axial point
- pretrigger
- pretrigger
- regenerator
- STOLport
- BAT
- tape out
- factory reset
- factory reset
- semantics-free
- ACRR
- reflowable
- RDP
- PAT
- J2RE
- mailfile
- JeOS
- black-box testing
- white-box testing
- rule of three
- lasagna code
- floorplanning
- DIB
- crash out
- glenzed
- preemptable
- rototill
- VTHL
- HTOL
- shadowcasting
- ADS
- hextet
- filemask
- VSS
- VSS
- VSS
- VMS
- HAL
- HAL
- multipathing
- nonblocking
- pseudographics
- pseudographical
- dictionary attack
- unpacker
- supranet
- air cell
- mogas
- autogas
- ekranoplan
- ekranoplane
- WIG
- WISE
- WISE
- roamable
- renest
- OpenGL
- BVH
- RTTI
- WPF
- TUIO
- domain-specific language
- SDG
- DTW
- wave off
- OWL
- XTM
- NUI
- P3
- PPTP
- OSC
- paletted
- Yellow Boy
- pixel shader
- fragment shader
- subobject
- Delete
- groundcrew
- Shift
- denormal
- denormal
- positive logic
- negative logic
- combinational logic
- sequential logic
- XNOR
- mil-dot
- natural user interface
- Open Sound Control
- TUI
- Pure Data
- MIG
- Multi Input Gateway
- DSI
- CCV
- WMV
- WDM
- WDM
- absolute address
- relative address
- RTM
- IRQL
- IRP
- decompression bomb
- multihoming
- Punycode
- nonnetworked
- deindex
- blocklist
- primary rate interface
- kBps
- MBps
- Bps
- pseudoclass
- pseudoelement
- renamer
- nonexecuting
- foistware
- refactorability
- multiaddress
- uncrunch
- ADF
- mechanostability
- read-only access
- ECM
- bucket list
- PTOL
- cdr
- TMD
- pw
- work envelope
- plating carrier
- cadr
- caddr
- cddr
- shipset
- lowercasify
- normally black
- normally white
- contrast ratio
- ╬╗/4 film
- dive bomber
- arrow key
- nonpooled
- QAR
- FOHE
- VCC
- ACARS
- /dev/null
- NTR
- reordrant
- PABX
- slippy map
- probe-and-drogue
- qwerty syndrome
- coterminal
- coterminal
- quadruple-click
- quadruple-click
- quintuple-click
- quintuple-click
- YAML
- DTD
- MMI
- data store
- lazy eight
- STT
- suicide battery
- serial key
- dwell time
- dry hole
- A2S
- Server Side Include
- Small Scale Integration
- discrete component
- medium scale integration
- large scale integration
- very large scale integration
- ultra large scale integration
- WSI
- wafer-scale integration
- roger that
- UID
- WTP
- ptr
- RDDL
- Resource Directory Description Language
- CHILL
- CCITT High Level Language
- ITU-T
- data access object
- unique identifier
- cryptoprocessor
- forkable
- unarchive
- I-beam
- upvalue
- crossplay
- double precision
- echoplex
- erasure code
- linish
- greetz
- BMP
- BMP
- read-through
- listview
- hexacore
- pinnable
- prefork
- sargable
- tickable
- FLPP
- field-programmable gate array
- gate array
- uncommitted logic array
- glider gun
- prime implicant
- essential prime implicant
- non-essential prime implicant
- turn-by-turn navigation
- WCF
- reverse proxy
- UAT
- multiexchange
- maplet
- JAX
- JAXB
- WSIT
- CDDL
- SPL
- JWSDP
- SAAJ
- JAX-RPC
- StAX
- OSGi
- MOSS
- MOSS
- SST
- SST
- NTLM
- WSRP
- OASIS
- traceback
- WSIA
- HPC
- OOA
- OOD
- OOAD
- voice recognition
- speech recognition
- OMT
- catenet
- gdb
- Cygwin
- MinGW
- MSYS
- Autotools
- Interix
- C of A
- unstuff
- foreflow
- deduplicate
- RRD
- showplan
- TWAIN
- antitracking
- multiflighted
- VLOC
- ULCC
- ECS
- preshift
- unfocus
- kezboard
- Start menu
- Windows key
- billboarding
- unexecute
- superband
- cel shading
- toon shading
- facemail
- CWT
- LQTM
- LPF
- subthread
- Baby Bell
- eyebar
- trackerball
- rollerball
- combining character
- demarc
- subtab
- unfavorited
- dynamic memory allocation
- gzip
- ultrapeer
- extreme programmer
- antibugging
- autopartitioning
- nonimpact
- VHLL
- subhistory
- DSMS
- NOTAM
- hashlike
- bit nibbler
- productionable
- rotary phone
- unpickle
- exaflop
- autodetection
- GoS
- xyloplastic
- base character
- null character
- antiearthquake
- antiquake
- 4ktro
- BITNET
- nonhit
- Bellman-Ford algorithm
- quality of life
- servicification
- random access
- autorefresh
- cryptoprocessing
- RAR
- RAR
- unrar
- yieldable
- HAM
- teledensity
- dispatch table
- MWE
- crashdump
- navbar
- macroing
- MSDN
- featureful
- AFF
- unbless
- softwarematically
- equijoin
- rockoon
- OSI layer 8
- XMP
- rollup
- multitabbed
- Cognos
- pop-in
- duty cycle
- level-triggered
- edge-triggered
- double action
- double action
- metadatabase
- unswitched
- bootload
- TPS
- autodelete
- embarrassingly parallel
- OVC
- screen motion capture
- PAPI
- C`num`
- Maxim gun
- focusable
- MCA
- MCA
- thimbled
- pre-hook
- polyfill
- SLD
- virtual address
- zoom box
- tertiate
- sailcraft
- autoencoder
- OPV
- optionally piloted vehicle
- AUV
- NAPLPS
- wordwise
- wordwise
- hydroforming
- multisurface
- antireflective
- multikey
- keypath
- AMOLED
- rewriter
- dropfile
- netlist
- reflash
- riplock
- Extensible Markup Language
- XUL
- BCL
- CLS
- CLS
- Common Type System
- Common Language Infrastructure
- language-agnostic
- Common Language Specification
- VES
- Common Intermediate Language
- intermediate language
- software framework
- Common Language Runtime
- backstrap
- member function
- ECIS
- BAML
- managed code
- unmanaged code
- native code
- MSIL
- P/Invoke
- lookaside
- one-time pad
- overpull
- cold working
- MVVM
- antiair
- depacketize
- repacketize
- packetizer
- view model
- software architecture
- system architecture
- computer model
- abstract model
- computer simulation
- computational model
- GDI+
- application programming interface
- LOB
- WinForms
- joint entropy
- conditional entropy
- mutual information
- watchpoint
- sideload
- bookware
- squeg
- redist
- Wiener filter
- depacketizer
- OCP
- open/closed principle
- GEM
- storage hypervisor
- Duff's device
- DPMI
- intraquery
- interquery
- hashbang
- Unixism
- autoplay
- autoplay
- characterwise
- characterwise
- subdatabase
- DTE
- data terminal equipment
- DCE
- Data Circuit-Terminating Equipment
- Data Carrier Equipment
- Data Communications Equipment
- tileset
- postback
- OODL
- reactivator
- seacoal
- death spiral
- graveyard spiral
- self-right
- garageware
- PNP
- PEP
- pumping lemma
- do loop
- directoryless
- avalanche effect
- autoinstall
- autoinstallation
- ERM
- DRY
- DRY
- DRY
- overbreak
- hackee
- LHD
- multihomed
- jump list
- bolt circle
- SRV
- prismatic colors
- prismatic colours
- preboot
- hyperthreading
- tabify
- untabify
- tabification
- hyperthreaded
- subnamespace
- untabification
- superexpression
- applicationwide
- roll one's own
- versionitis
- pre-echo
- nondithered
- nondithering
- undercutter
- blaze away
- slow roll
- SPRG
- jumpered
- data bus
- demomaking
- Knowledge Interchange Format
- KIF
- bec de corbin
- Turing jump
- oracle machine
- zeroization
- CTE
- CIFS
- MTTF
- MTBF
- mean time to failure
- currency sign
- LFN
- crashproof
- THT
- through-hole technology
- PTH
- OSI layer
- OSI model
- water landing
- emergency landing
- final approach
- tailstrike
- gravity drop
- belly landing
- floatstick
- SLS
- SLS
- unsmelted
- crossfeed
- crossfeed
- Space Launch System
- explosive decompression
- NPOESS
- NPP
- decision height
- flushness
- Oracle
- behinder
- underpull
- overgross
- overburn
- usr
- XT
- Command key
- rejected takeoff
- Quaker gun
- disentailed
- subworker
- untrust
- untrust
- whisket
- ambifix
- unscale
- optical drive
- VPS
- virtual private server
- VESA
- EISA
- renumberer
- single curve
- compound curve
- alist
- cons cell
- VOB
- versioned object base
- rudderpost
- unfeather
- thrust reverser
- evacuation slide
- metacompilation
- EPETO
- dependee
- crusher gauge
- M98
- straight pull
- recapper
- GFC
- full metal jacket
- underhead
- overweather
- Playfair
- Mahovos
- deformat
- antiworm
- chunker
- CSG
- speedshift
- leaf node
- defringe
- kneejoint
- whirtle
- winner-take-all
- predeclare
- loop invariant
- committable
- odontograph
- echoable
- subrepo
- greyline
- special service requirement
- subagent
- metacommand
- multinumber
- subslice
- downclock
- reclock
- upclock
- sessionless
- podule
- microphonics
- ZWNBSP
- departer
- higher intermediate point
- higher intermediate fare
- clustered index
- nonclustered index
- currency adjustment factor
- NOTAR
- systray
- ility
- trippet
- bpp
- Dresdenware
- Start button
- draglink
- pseudowire
- keyholder
- pseudodevice
- pseudoterminal
- unattended installation
- checked build
- holophotal
- BDC
- themeable
- head crash
- cylinder-head-sector
- CHS
- double open jaw
- open jaw
- tracepoint
- photoreal
- aplanatism
- Hann
- neck up
- negative crystal
- MAP
- taggable
- freestore
- macroassembler
- wharfing
- ground-effect vehicle
- lignel
- pointel
- interpixel
- intervoxel
- surfel
- voxelization
- link motion
- backjumping
- Shor's algorithm
- Texas heart shot
- gulleting
- reindex
- superrecursive
- transient luminous event
- total internal reflection
- complete internal reflection
- extremely low frequency
- ULF
- ultra low frequency
- activation record
- forebeam
- predictive parser
- counterbrace
- dual SIM
- triple SIM
- hourglassing
- hourglassed
- internetting
- telecentric
- front slash
- qux
- control tower
- rebat
- Las Vegas algorithm
- Steiner point
- CADAM
- syscall
- nosegear
- DX
- QRH
- rundle
- phit
- unreachable code
- ALS
- PACS
- thin-film interference
- tablespace
- wheelbarrowing
- interaxis
- billboarded
- poststall
- supermaneuverability
- toggle switch
- overstore
- overstore
- manifolded
- coasterware
- resultset
- unclocked
- dBASE
- dBFAST
- TMP
- CVBS
- composite video, blanking, and sync
- qugate
- quantum computing
- UHV
- marching ants
- gweep
- gweep
- Hindley's screw
- geostatic
- SAK
- unicore
- pseudoparallelism
- pseudoparallel
- Curie point
- logspace
- chromatics
- hackaround
- coercibility
- run book
- hyperheuristic
- backupable
- XPath
- XML Path Language
- greillade
- electrolytic capacitor
- capacitor plague
- xDSL
- autobaud
- backstress
- smart quotes
- counterwheel
- sway-bracing
- slam dunk approach
- slamdunk approach
- slam-dunk approach
- graphing calculator
- keysender
- homoglyph
- fanout
- focal plane
- real image
- MBCS
- compound bow
- recurve bow
- basename
- TFS
- tape library
- inducteous
- beerware
- subfont
- keyholing
- doglock
- Picatinny rail
- pinfire
- slamfire
- speedloader
- sporterize
- underlug
- dogship
- retagger
- permittance
- pattern matching
- industry discount
- global indicator
- immunoinformatics
- copperbar
- unauthorize
- multiusing
- preshifted
- intertype
- overtrip
- overtrip
- RLL
- tinygram
- NUC
- NUC
- picklist
- cockeye
- REN
- trapdoor function
- bundle adjustment
- mergesort
- mergesort
- heapsort
- heapsort
- minheap
- maxheap
- smoothsort
- headered
- Pernot furnace
- shaderless
- commentation
- interdigit
- dezincification
- softlifting
- generification
- momental
- subversioning
- Thunderbird
- ultrabook
- unhashable
- semiweak
- enaction
- bevel gear
- A20 gate
- upper memory area
- high memory area
- kernel panic
- quadrifocal
- frizel
- Automated Transfer Vehicle
- presheaf
- right inverse
- subscope
- superscope
- SIGMET
- reaccess
- reaccess
- unmark
- cocarde
- Kármán line
- slice category
- NoSQL
- broken bird
- surgeless
- oct
- CFG
- undeclaration
- multicache
- multimemory
- VFP
- subkey
- taxel
- stream cipher
- superframe
- midframe
- hyperstructure
- hyperoperator
- n-gram
- NP-hard
- bandelet
- MDB
- two-phase
- Chromium
- overpost
- stereostatic
- rehost
- technical stop
- dunder
- Microsoft tax
- SIMware
- SCA
- e-inclusion
- tilt-shift
- microserver
- conventional PCI
- bundleware
- SYLK
- TOTP
- ib.
- cut and cover
- clamper
- Tripehound
- rollaboard
- rollaboard
- autoincrement
- autoincrement
- SCM
- software configuration management
- source configuration management
- ASAR
- item set
- FIT
- NGST
- JWST
- proplet
- CPE
- bitstate
- cymoscope
- MPO
- JUICE
- security by design
- UNC
- undercommented
- data path
- datapath
- wardialer
- point release
- pantoscopic
- genetic memory
- uudecode
- DOS extender
- UX
- deconfigure
- COW
- tab stop
- OOPSLA
- PLoP
- PPR
- CBSE
- MFT
- EAI
- SSADM
- content coupling
- pathological coupling
- common coupling
- global coupling
- external coupling
- control coupling
- stamp coupling
- data-structured coupling
- data coupling
- message coupling
- LTE
- subresource
- cleardown
- scriptlet
- usercentric
- burndown
- VMC
- VMC
- VEX
- VIRTIS
- PFS
- PFS
- Hooke's gearing
- subaccount
- MFP
- blue screen
- semiduplex
- half-duplex
- presignature
- localic
- coidentity
- coinversion
- multitexture
- clipmapping
- stencil buffer
- cosysop
- democoder
- soft launch
- lazy initialisation
- SOLID
- SRP
- single responsibility principle
- open-closed principle
- interface segregation principle
- God object
- God class
- CLU
- GRASP
- General Responsibility Assignment Software Patterns
- General Responsibility Assignment Software Principles
- IAT
- SCJD
- SCEA
- pseudonymize
- mailstore
- taskboard
- mouseable
- SFG
- TTS
- OOS
- cannular
- WPT
- WPT
- Unixish
- SPB
- SPB
- single-acting
- CCDev
- C3PO
- DIP switch
- design by contract
- contract programming
- programming by contract
- DbC
- JML
- extended static checking
- composite reuse principle
- composition over inheritance
- subtype polymorphism
- defensive programming
- defensive design
- VDM
- VDM-SL
- UDT
- absolute ceiling
- potiche
- multiusage
- unberth
- unslipped
- blindable
- cold roll
- cloop
- high color
- snap cap
- SNTP
- debismuthization
- peritrochium
- accounting machine
- overmodulation
- eliquation
- skeuomorphism
- ASCIIfy
- uncollapse
- autoscaling
- SERM
- twigil
- pizza box
- FDM
- FDM
- digital-to-analog converter
- boriding
- dead zone
- drivingly
- aluminium bronze
- telesurgery
- remote surgery
- infinite scroll
- factory class
- factory method pattern
- factory pattern
- architectural pattern
- echomail
- abstract factory pattern
- abstract factory class
- abstract type
- nominative type system
- name-based type system
- nominal type system
- BPR
- HSF
- HSF
- pencentric
- peopleware
- agentspace
- broket
- bannerware
```


## Screenshots

Including screenshots seems moot, since there are far too many errors in the provided lists.

## Ideas for fix

I think there's multiple ways to go about resolving this.
- Include a larger dictionary in Harper
- Allow some way to include large word lists based on user preferences (I don't want to paste lists of 10K+ words in the extension UI input box), maybe even with integrated/official downloading based on a user-selected topic
- An option which makes Harper try look up words it thinks are misspelled/nonexistent on a much larger online dictionary, adding them to the users word list if found. This would basically learn which terminology the user uses and only store that, in case storage and performance of vastly bigger dictionaries is an issue.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the terminology lists in the issue and reproducing the reported lints in the Harper web editor at https://writewithharper.com/. Determine how Harper's dictionary currently handles technical terms and define which entries should be accepted; done means the selected terminology no longer produces incorrect lints without introducing unacceptable false positives.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.