Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
68 changes: 68 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# .gitattributes — Rust (GitHub-hosted)
#
# Sources: GitHub Docs (line endings), git-scm gitattributes (diff=rust),
# gitattributes/gitattributes Rust.gitattributes + Common.gitattributes,
# github-linguist overrides.

# Default: detect text, normalize to LF in the repository
* text=auto

# --- Source ---
*.rs text eol=lf diff=rust
*.toml text
Cargo.lock text
Cargo.toml text
rust-toolchain text
rust-toolchain.toml text

# --- Scripts ---
*.bash text eol=lf
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf
*.sh text eol=lf
*.zsh text eol=lf

# --- Docs / meta ---
*.adoc text
*.markdown text diff=markdown
*.md text diff=markdown
*.txt text
AUTHORS text
CHANGELOG text
CHANGES text
CONTRIBUTING text
COPYING text
LICENSE text
NEWS text
README text
TODO text
.gitattributes text
.gitignore text

# --- Serialisation ---
*.json text
*.xml text
*.yaml text
*.yml text

# --- Binary ---
*.a binary
*.dll binary
*.dylib binary
*.exe binary
*.rlib binary
*.so binary

# --- Archives / images (common) ---
*.gif binary
*.gz binary
*.ico binary
*.jpeg binary
*.jpg binary
*.png binary
*.tar binary
*.zip binary

# --- GitHub Linguist ---
**/target/** linguist-generated
85 changes: 85 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: CI

on:
push:
branches:
- master
- dev
- boilerplate
- idiomatic
- rc1
- rc2
- rc3
pull_request:

permissions:
contents: read

defaults:
run:
shell: bash

env:
CARGO_TERM_COLOR: always

jobs:
check:
name: Stable checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable
with:
components: clippy

- uses: Swatinem/rust-cache@v2

- name: cargo test (all targets)
run: cargo test --all-targets --locked

- name: cargo test (no default features)
run: cargo test --no-default-features --locked

- name: cargo clippy
run: cargo clippy --all-targets --locked -- -D warnings

- name: cargo doc
run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --locked

- name: Install pinned nightly rustfmt
run: rustup toolchain install nightly-2026-09-10 --profile minimal --component rustfmt

- name: rustfmt
env:
RUSTFMT_TOOLCHAIN: nightly-2026-09-10
RUSTUP_TOOLCHAIN: nightly-2026-09-10
run: ./scripts/fmt --check

- name: DOC_76 checker
run: python3 scripts/check_doc_76.py

- name: RUST_TEST_NAMING checker
run: python3 scripts/check_test_names.py

- name: DERIVE_LAYOUT checker
run: python3 scripts/check_derives.py

- name: cargo build (examples)
run: cargo build --examples --locked

- name: cargo publish (dry run)
run: cargo publish --dry-run --locked

msrv:
name: MSRV (1.74)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@1.74.0

- uses: Swatinem/rust-cache@v2

- name: cargo check (library)
run: cargo check --lib --locked
53 changes: 50 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,26 +1,73 @@

# directories (by name)

/_build/
/_analyses/

/.idea/

/scratch/
/target/


# directories (by pattern)

**/__pycache__/

**/.mypy_cache/
**/.pytest_cache/
**/.ruff_cache/


# files (by name)

.DS_Store

Cargo.lock
.ruby-version


# files (by pattern)

**/*.rs.bk # These are backup files generated by rustfmt

*~
*.*~
*.???_obj
*.a
*.app
*.bak
*.class
*.diff
*.dll
*.dylib
*.exe
*.gch
*.gem
*.idb
*.ilk
*.lib
*.log
*.ncb
*.o
*.obj
*.opensdf
*.opt
*.org
*.out
*.pch
*.pdb
*.pyc
*.pyo
*.res
*.sbr
*.scc
*.sdf
*.so
*.suo
*.sw[ponm]
*.swp
*.test
*.tlog
*.tmp
*.xcuserstate
*.zip


66 changes: 65 additions & 1 deletion .vimrc
Original file line number Diff line number Diff line change
@@ -1,6 +1,70 @@
" Synesis Rust project .vimrc — aligned with .vscode/settings.json (Rust)

set nocompatible
filetype indent plugin on
syntax enable
set autoindent
set backspace=indent,eol,start
set hlsearch
set incsearch
set number

" files.insertFinalNewline
set eol
set fixeol

" editor.renderWhitespace: all
set list
set listchars=tab:->,trail:-,extends:>,precedes:<,nbsp:+

" editor.detectIndentation: false — global defaults (editor.tabSize: 4, insertSpaces: true)
set colorcolumn=76
set expandtab
set shiftwidth=4
set softtabstop=4
set tabstop=4
set tabstop=4

" colorcolumn draws a full-column tint in Vim (not a VS Code-style 1px line).
" Keep it subtle via the ColorColumn highlight group; reapply after colorscheme changes.
if has('termguicolors')
" set termguicolors
endif

function! s:ConfigureColorColumn() abort
highlight ColorColumn ctermbg=236 guibg=#2a2a2a cterm=NONE gui=NONE
endfunction

call s:ConfigureColorColumn()
autocmd ColorScheme * call s:ConfigureColorColumn()

" files.trimTrailingWhitespace
autocmd BufWritePre * %s/\s\+$//e

augroup sis_rust
autocmd!

" [bat]
autocmd FileType bat,dosbatch setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,76

" [c] / [cpp]
autocmd FileType c,cpp setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,64,68,72,76

" [cmake]
autocmd FileType cmake setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4

" [json] / [markdown] / [yaml] / [ruby]
autocmd FileType json,markdown,yaml,ruby setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2

" [python]
autocmd FileType python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,76

" [rust]
autocmd FileType rust setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=76

" [shellscript]
autocmd FileType sh,bash,zsh setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 colorcolumn=60,76

" [toml]
autocmd FileType toml setlocal noexpandtab tabstop=2 shiftwidth=2 softtabstop=2
augroup END

43 changes: 40 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,27 +1,64 @@
{
"[json]": {
"editor.insertSpaces": true,
"editor.tabSize": 2,
},
"[markdown]": {
"editor.insertSpaces": true,
"editor.tabSize": 2,
},
"[python]": {
"editor.insertSpaces": true,
"editor.rulers": [ 60, 76 ],
"editor.tabSize": 4,
},
"[ruby]": {
"editor.insertSpaces": true,
"editor.rulers": [ 60, 76 ],
"editor.tabSize": 2,
},
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer",
"editor.formatOnSave": true,
"editor.insertSpaces": true,
"editor.rulers": [ 60, 76 ],
"editor.tabSize": 4,
},
"[shellscript]": {
"editor.insertSpaces": true,
"editor.rulers": [ 60, 76 ],
"editor.tabSize": 2,
},
"[toml]": {
"editor.insertSpaces": false,
"editor.tabSize": 2,
},
"cmake.configureOnOpen": false,
"debug.allowBreakpointsEverywhere": true,
"editor.detectIndentation": false,
"editor.insertSpaces": false,
"editor.renderWhitespace": "all",
"editor.rulers": [ 76 ],
"editor.tabSize": 2,
"editor.renderWhitespace": "all",
"files.insertFinalNewline": true,
"files.trimTrailingWhitespace": true,
"git.mergeEditor": false,
"rust-analyzer.cargo.buildScripts.enable": true,
"rust-analyzer.cargo.features": [],
"rust-analyzer.cargo.noDefaultFeatures": true,
"rust-analyzer.cargo.features": [
],
"rust-analyzer.check.allTargets": true,
"rust-analyzer.check.command": "clippy",
"rust-analyzer.checkOnSave": true,
"rust-analyzer.completion.autoimport.enable": false,
"rust-analyzer.debug.engine": "vadimcn.vscode-lldb",
"rust-analyzer.debug.openDebugPane": true,
"rust-analyzer.procMacro.enable": true,
"rust-analyzer.rustfmt.overrideCommand": [
"rustup",
"run",
"nightly-2026-09-10",
"rustfmt",
"--unstable-features",
],
"rust-analyzer.showUnlinkedFileNotification": false,
}
24 changes: 24 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# recls.Rust - Changes <!-- omit in toc -->


## 0.0.1 - 12th September 2026

* Recorded the first 0.0.1 release of the unpublished recursive-search
scaffold;
* Retained the absence of a supported public API and recursive-search
functionality;
* Retained reproducible dependency resolution, CI validation, and the
version-reporting example;


## 0.0.0 - 31st August 2026

* Recorded the existing 0.0.0 crate as an unpublished scaffold;
* Added explicit recursive-search status to **README.md** and crate-level rustdoc;
* Added reproducible pinned-nightly formatting, repository checkers, and locked CI validation;
* Updated reserved dependencies to bounded compatible releases, including **test_help-rs** 0.2.1;
* Documented the retained **Cargo.lock** policy and the absence of examples;
* Preserved the BSD-3-Clause license and copyright ownership chronology;


<!-- ########################### end of file ########################### -->
Loading
Loading