Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Init project #1

Merged
merged 113 commits into from
Aug 9, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
6985536
Create codespace config
spenserblack Jul 26, 2023
b2d4d37
Initialize workspace
spenserblack Jul 26, 2023
32a1691
Set up dependabot
spenserblack Jul 26, 2023
090b4f7
Add CI
spenserblack Jul 26, 2023
08a5b9f
TEMP Add CLI integration test
spenserblack Jul 26, 2023
0bf465a
Rename job
spenserblack Jul 26, 2023
8e8e43b
fixup! TEMP Add CLI integration test
spenserblack Jul 26, 2023
575b849
Use snapshot testing with insta
spenserblack Jul 26, 2023
2ffb1e5
Format
spenserblack Jul 26, 2023
97951d9
Add rust-analyzer extension
spenserblack Jul 26, 2023
7bb63d9
TEMP Build code from data file
spenserblack Jul 26, 2023
c4abbed
squash! TEMP Build code from data file
spenserblack Jul 26, 2023
b2c99ab
Build analyzers
spenserblack Jul 26, 2023
95461b7
Build language enum
spenserblack Jul 26, 2023
15b2074
TEMP Build analyzer
spenserblack Jul 26, 2023
a3e2a0f
Add macro to build language enum
spenserblack Jul 27, 2023
7d376f2
TEMP Add default analyzer generator
spenserblack Jul 27, 2023
899ba89
Test default analyzer generator
spenserblack Jul 27, 2023
bc1873f
Exclude unnecessary files
spenserblack Jul 27, 2023
27299a7
Revert "Exclude unnecessary files"
spenserblack Jul 27, 2023
018e639
Revert "Test default analyzer generator"
spenserblack Jul 27, 2023
bf7e593
Revert "TEMP Add default analyzer generator"
spenserblack Jul 27, 2023
8197694
Revert "Add macro to build language enum"
spenserblack Jul 27, 2023
1ef40ba
TEMP Include deserialize at runtime
spenserblack Jul 27, 2023
62cccfd
fixup! TEMP Include deserialize at runtime
spenserblack Jul 27, 2023
5aa9572
Update TODO
spenserblack Jul 28, 2023
6d56bdc
fixup! Revert "Add macro to build language enum"
spenserblack Jul 28, 2023
14a34f8
Format
spenserblack Jul 28, 2023
0351af3
clippy --fix
spenserblack Jul 28, 2023
dc46df7
Add matching by regex
spenserblack Jul 28, 2023
ebe1875
Add iter
spenserblack Jul 28, 2023
b6042df
Set up coverage
spenserblack Jul 28, 2023
251ec2a
Add `matrix.os` as flag
spenserblack Jul 28, 2023
965cf93
Use tarpaulin
spenserblack Jul 28, 2023
d4ae3cd
Fix makefile test
spenserblack Jul 28, 2023
cccc89a
Update .github/workflows/ci.yml
spenserblack Jul 28, 2023
d288d30
Add badges
spenserblack Jul 28, 2023
ced61a9
Reimplement matchers
spenserblack Jul 28, 2023
75f2ffc
Add shebang matcher
spenserblack Jul 29, 2023
5586cc2
Group cmd pattern
spenserblack Jul 29, 2023
6e26cff
Format on save
spenserblack Jul 29, 2023
c029a28
Add `Analyzers::check`
spenserblack Jul 29, 2023
f551879
Test multiple matches
spenserblack Jul 29, 2023
662ec67
Switch to `actions-rs/tarpaulin`
spenserblack Jul 29, 2023
4367c22
Revert "Switch to `actions-rs/tarpaulin`"
spenserblack Jul 29, 2023
a878eed
Use `IndexSet`
spenserblack Jul 29, 2023
280e9c2
Add rust-analyzer as workspace recommendation
spenserblack Aug 2, 2023
f9bbaa5
Major reorganization that I'm too lazy to break up
spenserblack Aug 2, 2023
0cc6dd9
Install tarpaulin after tests pass
spenserblack Aug 2, 2023
aa6b886
Test that compilation is lazy
spenserblack Aug 2, 2023
844ac22
Fix typo
spenserblack Aug 2, 2023
9cf83b6
Update gengo/languages.yaml
spenserblack Aug 2, 2023
7f20c6c
Change priority to `u8`
spenserblack Aug 2, 2023
f4a1221
Auto-fix some clippy warnings
spenserblack Aug 2, 2023
58964ef
Run tarpaulin even if install failed
spenserblack Aug 2, 2023
c7f4d17
Alphabetize header
spenserblack Aug 2, 2023
e532f33
Add script to check languages file
spenserblack Aug 2, 2023
1a14296
Make languages file detectable by linguist
spenserblack Aug 2, 2023
6467b35
Return `Result` from `Analyzer::from_*`
spenserblack Aug 3, 2023
ea24407
Make `Analyzers::from_indexmap` return `Result`
spenserblack Aug 3, 2023
96f5d22
Add TODO
spenserblack Aug 3, 2023
410b710
Escape regex
spenserblack Aug 3, 2023
c9345c6
Return analyzer from `check`
spenserblack Aug 3, 2023
df2b107
Refactor into `by_filename`
spenserblack Aug 3, 2023
54455a0
Add `by_shebang` method
spenserblack Aug 3, 2023
1d039dd
Add analyzer test
spenserblack Aug 3, 2023
2032829
Refactor shebang matcher
spenserblack Aug 3, 2023
4702a14
Remove `dbg!`
spenserblack Aug 3, 2023
f54e6f9
Remove `mut` references
spenserblack Aug 3, 2023
4ef3f99
Add `simple` check for initial lang identification
spenserblack Aug 3, 2023
c69c104
Update shebang line checks
spenserblack Aug 3, 2023
5c02660
fixup! Update shebang line checks
spenserblack Aug 3, 2023
f5e58fa
Implement heuristics
spenserblack Aug 3, 2023
83cb421
Add `pick` method
spenserblack Aug 7, 2023
745c9e6
Fix extension
spenserblack Aug 7, 2023
9d1399e
fixup! Add `pick` method
spenserblack Aug 7, 2023
7c90c6f
Remove `add` function
spenserblack Aug 7, 2023
d819635
Change `cli::parse_from` to `cli::try_parse_from`
spenserblack Aug 8, 2023
3f12335
Ignore `.snap.new` files
spenserblack Aug 8, 2023
b70b980
Take error writer in `Cli::run`
spenserblack Aug 8, 2023
fd8405d
Rename `Cli` to `CLI`
spenserblack Aug 8, 2023
e048abf
Create `Builder`
spenserblack Aug 8, 2023
325c8fd
fixup! Create `Builder`
spenserblack Aug 8, 2023
8455bbc
Add analysis method
spenserblack Aug 8, 2023
a88a086
Return entries instead of languages
spenserblack Aug 8, 2023
49c49b6
Add test on JS branch
spenserblack Aug 8, 2023
47e7cf0
Add `Entry::size`
spenserblack Aug 8, 2023
617e63a
Handle non-blob entries
spenserblack Aug 8, 2023
2530b5d
Add TODO
spenserblack Aug 8, 2023
f98ef46
Fix test
spenserblack Aug 9, 2023
2a6c44c
Walk entire tree
spenserblack Aug 9, 2023
99d649b
Refactor and track full path
spenserblack Aug 9, 2023
e77b763
Remove `dbg!`
spenserblack Aug 9, 2023
3c26d73
Code cleanup
spenserblack Aug 9, 2023
8b1719e
Add basic checks for generated, documentation, vendored
spenserblack Aug 9, 2023
6a1ec50
Update fixture for snapshot test
spenserblack Aug 9, 2023
3388e5d
Fix path names for deeply nested files
spenserblack Aug 9, 2023
9530247
Set up CLI
spenserblack Aug 9, 2023
d68ca7a
Add some language entries
spenserblack Aug 9, 2023
4ded3ed
Include size in output
spenserblack Aug 9, 2023
668317d
Alphabetize
spenserblack Aug 9, 2023
24b44f1
Clippy & format
spenserblack Aug 9, 2023
cefc278
Use indexmap
spenserblack Aug 9, 2023
f177302
Separate out generated/documentation/vendored
spenserblack Aug 9, 2023
cd69ee1
Add `detectable` field
spenserblack Aug 9, 2023
58d52b3
Use gitattributes for boolean overrides
spenserblack Aug 9, 2023
1ce6f78
Add HTML
spenserblack Aug 9, 2023
79655f7
Set gitattributes for testing
spenserblack Aug 9, 2023
8ab4b89
Implement language overrides
spenserblack Aug 9, 2023
7950ded
Mark test `dist/` as plain text
spenserblack Aug 9, 2023
ecef344
Test language override
spenserblack Aug 9, 2023
b46225d
format
spenserblack Aug 9, 2023
892807a
Fix detected files getting ignored
spenserblack Aug 9, 2023
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
19 changes: 19 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"name": "Rust",
"image": "mcr.microsoft.com/devcontainers/rust:1",
"customizations": {
"vscode": {
"extensions": [
"EditorConfig.EditorConfig",
"rebornix.ruby",
"rust-lang.rust-analyzer"
],
"settings": {
"editor.formatOnSave": true,
"files.autoSaveDelay": 1000
}
}
},
"postCreateCommand": ".devcontainer/postCreate.sh",
"remoteUser": "vscode"
}
3 changes: 3 additions & 0 deletions .devcontainer/postCreate.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh
cargo install cargo-insta
cargo build
31 changes: 31 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
root = true

[*]
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true

[*.json]
indent_style = space
indent_size = 2

[*.rb]
indent_style = space
indent_size = 2

[*.rs]
indent_style = space
indent_size = 4

[*.sh]
indent_style = tab
indent_size = 8

[*.toml]
indent_style = space
indent_size = 4

[*.{yaml,yml}]
indent_style = space
indent_size = 2
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*.snap -whitespace linguist-language=Text
/gengo/languages.yaml linguist-detectable

# For tests
dist/* gengo-detectable gengo-language=Plain-Text
2 changes: 2 additions & 0 deletions .github/actions-rs/grcov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
output-type: lcov
output-file: ./lcov.info
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: cargo
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
75 changes: 75 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]

env:
CARGO_TERM_COLOR: always

jobs:
build:
name: Build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]

steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}

- name: Check
run: cargo check

- name: Build
run: cargo build --verbose

- name: Test
run: cargo test --verbose

- name: Install tarpaulin
uses: actions-rs/install@v0.1
# NOTE: The last step fails if tarpaulin is already installed
continue-on-error: true
with:
crate: cargo-tarpaulin
- name: Generate Coverage
run: cargo tarpaulin --verbose --workspace --timeout 120 --out Xml
- name: Upload Coverage
uses: codecov/codecov-action@v3
with:
flags: ${{ matrix.os }}
token: ${{ secrets.CODECOV_TOKEN }}

lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Check Format
run: cargo fmt -- --check

- name: Lint
run: cargo clippy -- -D warnings

check-languages-file:
name: Check Languages File
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
- name: Check Languages File
run: ruby ./scripts/check-languages-file.rb
10 changes: 6 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@
# will have compiled files and executables
/target/

# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock

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

# Generated by tarpaulin
cobertura.xml

# Temporary snapshot files generated by insta
*.snap.new
6 changes: 6 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"recommendations": [
"rebornix.ruby",
"rust-lang.rust-analyzer"
]
}
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer"
},
}
Loading