Xo is experimental. The source code is not public yet; it will be soon. Read the release notes
Menu · XO0101

Docs

XO0101: name breaks the enforced naming rules

error · reported by the checker

Xo enforces naming in the compiler instead of leaving it to linters, so every program reads the same way and a name’s kind is visible at a glance. Types, enum variants, interfaces, and type parameters are UpperCamel; functions, methods, variables, fields, parameters, modules, and effect variables are snake_case; constants are UPPER_SNAKE. Exported names are marked with pub, never by capitalization. The diagnostic carries a fix that renames the declaration. See core 1.5.

Example

fn DoIt(userId: Int) -> Int {
  userId
}

Fix

fn do_it(user_id: Int) -> Int {
  user_id
}

Run xo explain XO0101 for this text in a terminal, or see section 10.6 of the specification.