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
48 changes: 0 additions & 48 deletions .cursor/rules/rust-standards.mdc

This file was deleted.

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
45 changes: 27 additions & 18 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,21 +33,27 @@ jobs:
with:
components: clippy

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

- 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
Expand All @@ -59,9 +65,27 @@ jobs:
- 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)
# Full tests need dev-deps (criterion -> clap_lex 2024 edition);
# stable runs the complete test suite; MSRV only checks the library.
run: cargo check --lib --locked

feature:
name: test-doomgram feature checks
runs-on: ubuntu-latest
Expand All @@ -80,18 +104,3 @@ jobs:

- name: cargo doc (test-doomgram)
run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --features test-doomgram --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)
# Full tests need dev-deps (criterion -> clap_lex 2024 edition);
# stable runs the complete test suite; MSRV only checks the library.
run: cargo check --lib --locked
53 changes: 49 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,28 +1,73 @@

# directories (by name)

/_build/
/scripts/__pycache__/
/_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


32 changes: 16 additions & 16 deletions .vimrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
" Synesis C/C++ project .vimrc — aligned with .sis/.vscode/c_cxx/settings.json
" Synesis Rust project .vimrc — aligned with .vscode/settings.json (Rust)

set nocompatible
filetype indent plugin on
Expand All @@ -17,12 +17,12 @@ set fixeol
set list
set listchars=tab:->,trail:-,extends:>,precedes:<,nbsp:+

" editor.detectIndentation: false — global defaults (editor.tabSize: 2, insertSpaces: false)
set tabstop=2
set shiftwidth=2
set softtabstop=2
set noexpandtab
" editor.detectIndentation: false — global defaults (editor.tabSize: 4, insertSpaces: true)
set colorcolumn=76
set expandtab
set shiftwidth=4
set softtabstop=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.
Expand All @@ -40,30 +40,30 @@ autocmd ColorScheme * call s:ConfigureColorColumn()
" files.trimTrailingWhitespace
autocmd BufWritePre * %s/\s\+$//e

augroup sis_c_cxx
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

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

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

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

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

" [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
Expand Down
Loading
Loading