Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
7e1b578
rename emmylua_code_style to emmylua_formatter
CppCXY Mar 10, 2026
44028c2
basic format work
CppCXY Mar 10, 2026
59863d3
update inline comment handle
CppCXY Mar 10, 2026
ace20df
update
CppCXY Mar 10, 2026
53e0f93
refactor
CppCXY Mar 19, 2026
75da2d5
fix test
CppCXY Mar 19, 2026
1ad4078
update layout
CppCXY Mar 22, 2026
8c336d1
update
CppCXY Mar 22, 2026
dc751f5
update
CppCXY Mar 22, 2026
336c9bf
Merge remote-tracking branch 'origin/main' into formatter
CppCXY Mar 22, 2026
334aa7b
update comment handle
CppCXY Mar 22, 2026
0892b40
fix performance issue
CppCXY Mar 23, 2026
c605bc0
update
CppCXY Mar 23, 2026
60f15dd
update comment handle
CppCXY Mar 23, 2026
3bac4a5
update
CppCXY Mar 23, 2026
902ad94
fix formatter error
CppCXY Mar 23, 2026
a5902da
refactor comment handle
CppCXY Mar 23, 2026
60c99cc
refactor comment handle
CppCXY Mar 26, 2026
bf664f9
update formatter
CppCXY Mar 26, 2026
4e457de
update
CppCXY Mar 26, 2026
5d6ccab
update
CppCXY Mar 27, 2026
20798f9
refactor formatter
CppCXY Mar 27, 2026
29bbf36
clean code
CppCXY Mar 27, 2026
64306d7
update
CppCXY Mar 27, 2026
3227ec8
fix test
CppCXY Mar 29, 2026
2dfec57
clean code
CppCXY Mar 29, 2026
c334f50
fix closure style
CppCXY Mar 29, 2026
2c62ca0
update doc handle
CppCXY Mar 30, 2026
0567b66
clean code
CppCXY Mar 30, 2026
3c8d4d9
clean code
CppCXY Mar 30, 2026
ec71f4e
update comment handle
CppCXY Mar 30, 2026
47b691b
update cli tool
CppCXY Mar 30, 2026
4b14e05
fix test
CppCXY Mar 30, 2026
017cdd5
refactor build script
CppCXY Mar 30, 2026
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
151 changes: 62 additions & 89 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,20 @@ jobs:
fail-fast: false
matrix:
include:
- { os: ubuntu-22.04, target: x86_64-unknown-linux-gnu, platform: linux-x64, cross: general, crate: emmylua_ls }
- { os: ubuntu-22.04, target: x86_64-unknown-linux-gnu, platform: linux-x64, cross: zigbuild, crate: emmylua_ls, glibc: 2.17 }
- { os: ubuntu-22.04, target: aarch64-unknown-linux-gnu, platform: linux-arm64, cross: zigbuild, crate: emmylua_ls, glibc: 2.17 }
- { os: ubuntu-22.04, target: riscv64gc-unknown-linux-gnu, platform: linux-riscv64,cross: cross, crate: emmylua_ls }
- { os: ubuntu-22.04, target: x86_64-unknown-linux-musl, platform: linux-musl, cross: cross, crate: emmylua_ls }
- { os: macos-latest, target: x86_64-apple-darwin, platform: darwin-x64, cross: general-macos-intel, crate: emmylua_ls }
- { os: macos-latest, target: aarch64-apple-darwin, platform: darwin-arm64, cross: general, crate: emmylua_ls }
- { os: windows-latest, target: x86_64-pc-windows-msvc, platform: win32-x64, cross: general, crate: emmylua_ls }
- { os: windows-latest, target: i686-pc-windows-msvc, platform: win32-ia32, cross: general, crate: emmylua_ls }
- { os: windows-latest, target: aarch64-pc-windows-msvc, platform: win32-arm64, cross: general, crate: emmylua_ls }
- { os: ubuntu-22.04, target: x86_64-unknown-linux-gnu, platform: linux-x64, cross: general, crate: emmylua_check }
- { os: macos-latest, target: aarch64-apple-darwin, platform: darwin-arm64, cross: general, crate: emmylua_check }
- { os: windows-latest, target: x86_64-pc-windows-msvc, platform: win32-x64, cross: general, crate: emmylua_check }
- { os: ubuntu-22.04, target: x86_64-unknown-linux-gnu, platform: linux-x64, cross: general, crate: emmylua_doc_cli }
- { os: macos-latest, target: aarch64-apple-darwin, platform: darwin-arm64, cross: general, crate: emmylua_doc_cli }
- { os: windows-latest, target: x86_64-pc-windows-msvc, platform: win32-x64, cross: general, crate: emmylua_doc_cli }
- { os: ubuntu-22.04, target: x86_64-unknown-linux-gnu, platform: linux-x64, cross: general }
- { os: ubuntu-22.04, target: x86_64-unknown-linux-gnu, platform: linux-x64, cross: zigbuild, glibc: 2.17 }
- { os: ubuntu-22.04, target: aarch64-unknown-linux-gnu, platform: linux-arm64, cross: zigbuild, glibc: 2.17 }
- { os: ubuntu-22.04, target: riscv64gc-unknown-linux-gnu, platform: linux-riscv64, cross: cross }
- { os: ubuntu-22.04, target: x86_64-unknown-linux-musl, platform: linux-musl, cross: cross }
- { os: macos-latest, target: x86_64-apple-darwin, platform: darwin-x64, cross: general }
- { os: macos-latest, target: aarch64-apple-darwin, platform: darwin-arm64, cross: general }
- { os: windows-latest, target: x86_64-pc-windows-msvc, platform: win32-x64, cross: general }
- { os: windows-latest, target: i686-pc-windows-msvc, platform: win32-ia32, cross: general }
- { os: windows-latest, target: aarch64-pc-windows-msvc, platform: win32-arm64, cross: general }
runs-on: ${{ matrix.os }}
env:
PACKAGE_ARGS: -p emmylua_ls -p emmylua_check -p emmylua_doc_cli -p emmylua_formatter
BINARY_NAMES: emmylua_ls emmylua_check emmylua_doc_cli luafmt
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -47,48 +44,59 @@ jobs:
cargo run -p edit_version -- ${{ github.ref }}
- name: Build - General
if: ${{ matrix.cross == 'general' }}
shell: bash
run: |
rustup target add ${{ matrix.target }}
cargo build --release --target ${{ matrix.target }} -p ${{ matrix.crate }}
cargo build --release --target ${{ matrix.target }} $PACKAGE_ARGS
- name: Build - cross
if: ${{ matrix.cross == 'cross' }}
shell: bash
run: |
cargo install cross
cross build --release --target ${{ matrix.target }} -p ${{ matrix.crate }}
cross build --release --target ${{ matrix.target }} $PACKAGE_ARGS
- name: Build -zigbuild
if: ${{ matrix.cross == 'zigbuild' }}
shell: bash
run: |
rustup target add ${{ matrix.target }}
cargo install --locked cargo-zigbuild
pip3 install ziglang
cargo zigbuild --release --target ${{ matrix.target }}.${{ matrix.glibc }} -p ${{ matrix.crate }}
- name: Build - general macos-intel
if: ${{ matrix.cross == 'general-macos-intel' }}
cargo zigbuild --release --target ${{ matrix.target }}.${{ matrix.glibc }} $PACKAGE_ARGS
- name: Stage binaries
shell: bash
run: |
rustup target add ${{ matrix.target }}
cargo build --release --target ${{ matrix.target }} -p ${{ matrix.crate }}
- name: copy-binary
if: ${{ matrix.os != 'windows-latest' }}
run: |
mkdir -p ${{ github.workspace }}/artifact/
cp ${{ github.workspace }}/target/${{ matrix.target }}/release/${{ matrix.crate }} ${{ github.workspace }}/artifact/
- name: copy-binary-windows
if: ${{ matrix.os == 'windows-latest' }}
run: |
mkdir -p ${{ github.workspace }}/artifact/
cp ${{ github.workspace }}/target/${{ matrix.target }}/release/${{ matrix.crate }}.exe ${{ github.workspace }}/artifact/
shell: pwsh
if [ "${{ matrix.cross }}" = "zigbuild" ]; then
artifact_platform="${{ matrix.platform }}-glibc.${{ matrix.glibc }}"
target_dir="${{ matrix.target }}"
else
artifact_platform="${{ matrix.platform }}"
target_dir="${{ matrix.target }}"
fi

mkdir -p "$GITHUB_WORKSPACE/artifact"
binaries=($BINARY_NAMES)
for binary in "${binaries[@]}"; do
bundle_dir="$GITHUB_WORKSPACE/artifact/${binary}-${artifact_platform}"
mkdir -p "$bundle_dir"

source_path="$GITHUB_WORKSPACE/target/${target_dir}/release/${binary}"
if [ "${{ runner.os }}" = "Windows" ]; then
source_path="${source_path}.exe"
fi

cp "$source_path" "$bundle_dir/"
done
- name: Upload
if: ${{ matrix.cross != 'zigbuild' }}
if: ${{ matrix.cross != 'zigbuild' }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.crate }}-${{ matrix.platform }}
name: build-${{ matrix.platform }}
path: ${{ github.workspace }}/artifact/
- name: Upload zigbuild
if: ${{ matrix.cross == 'zigbuild' }}
if: ${{ matrix.cross == 'zigbuild' }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.crate }}-${{ matrix.platform }}-glibc.${{ matrix.glibc }}
name: build-${{ matrix.platform }}-glibc.${{ matrix.glibc }}
path: ${{ github.workspace }}/artifact/
release:
needs: build
Expand All @@ -97,65 +105,30 @@ jobs:
steps:
- name: Download
uses: actions/download-artifact@v4
- name: add execute permission and compress
- name: Compress artifacts
shell: bash
run: |
chmod +x emmylua_ls-linux-x64/emmylua_ls
chmod +x emmylua_ls-linux-x64-glibc.2.17/emmylua_ls
chmod +x emmylua_ls-linux-arm64-glibc.2.17/emmylua_ls
chmod +x emmylua_ls-linux-musl/emmylua_ls
chmod +x emmylua_ls-linux-riscv64/emmylua_ls
chmod +x emmylua_ls-darwin-x64/emmylua_ls
chmod +x emmylua_ls-darwin-arm64/emmylua_ls
chmod +x emmylua_check-linux-x64/emmylua_check
chmod +x emmylua_check-darwin-arm64/emmylua_check
chmod +x emmylua_doc_cli-linux-x64/emmylua_doc_cli
chmod +x emmylua_doc_cli-darwin-arm64/emmylua_doc_cli
shopt -s nullglob

tar -zcvf emmylua_ls-linux-x64.tar.gz -C emmylua_ls-linux-x64 emmylua_ls
tar -zcvf emmylua_ls-linux-x64-glibc.2.17.tar.gz -C emmylua_ls-linux-x64-glibc.2.17 emmylua_ls
tar -zcvf emmylua_ls-linux-aarch64-glibc.2.17.tar.gz -C emmylua_ls-linux-arm64-glibc.2.17 emmylua_ls
tar -zcvf emmylua_ls-linux-musl.tar.gz -C emmylua_ls-linux-musl emmylua_ls
tar -zcvf emmylua_ls-linux-riscv64.tar.gz -C emmylua_ls-linux-riscv64 emmylua_ls
tar -zcvf emmylua_ls-darwin-x64.tar.gz -C emmylua_ls-darwin-x64 emmylua_ls
tar -zcvf emmylua_ls-darwin-arm64.tar.gz -C emmylua_ls-darwin-arm64 emmylua_ls
tar -zcvf emmylua_check-linux-x64.tar.gz -C emmylua_check-linux-x64 emmylua_check
tar -zcvf emmylua_doc_cli-linux-x64.tar.gz -C emmylua_doc_cli-linux-x64 emmylua_doc_cli
tar -zcvf emmylua_check-darwin-arm64.tar.gz -C emmylua_check-darwin-arm64 emmylua_check
tar -zcvf emmylua_doc_cli-darwin-arm64.tar.gz -C emmylua_doc_cli-darwin-arm64 emmylua_doc_cli
- name: windows compress
run: |
cd emmylua_ls-win32-x64
7z a emmylua_ls-win32-x64.zip emmylua_ls.exe
cd ../emmylua_ls-win32-ia32
7z a emmylua_ls-win32-ia32.zip emmylua_ls.exe
cd ../emmylua_ls-win32-arm64
7z a emmylua_ls-win32-arm64.zip emmylua_ls.exe
cd ../emmylua_check-win32-x64
7z a emmylua_check-win32-x64.zip emmylua_check.exe
cd ../emmylua_doc_cli-win32-x64
7z a emmylua_doc_cli-win32-x64.zip emmylua_doc_cli.exe
for dir in build-*/*; do
[ -d "$dir" ] || continue

base_name="$(basename "$dir")"
if [[ "$base_name" == *win32* ]]; then
zip -j "${base_name}.zip" "$dir"/*.exe
else
chmod +x "$dir"/*
tar -zcvf "${base_name}.tar.gz" -C "$dir" .
fi
done
- name: Release
uses: softprops/action-gh-release@v2
with:
name: emmylua_ls
draft: false
generate_release_notes: true
files: |
emmylua_ls-win32-x64/emmylua_ls-win32-x64.zip
emmylua_ls-win32-ia32/emmylua_ls-win32-ia32.zip
emmylua_ls-win32-arm64/emmylua_ls-win32-arm64.zip
emmylua_check-win32-x64/emmylua_check-win32-x64.zip
emmylua_doc_cli-win32-x64/emmylua_doc_cli-win32-x64.zip
emmylua_ls-linux-x64.tar.gz
emmylua_ls-linux-x64-glibc.2.17.tar.gz
emmylua_ls-linux-aarch64-glibc.2.17.tar.gz
emmylua_ls-linux-musl.tar.gz
emmylua_ls-linux-riscv64.tar.gz
emmylua_ls-darwin-x64.tar.gz
emmylua_ls-darwin-arm64.tar.gz
emmylua_check-linux-x64.tar.gz
emmylua_doc_cli-linux-x64.tar.gz
emmylua_check-darwin-arm64.tar.gz
emmylua_doc_cli-darwin-arm64.tar.gz
*.zip
*.tar.gz

token: ${{ secrets.RELEASE }}
37 changes: 24 additions & 13 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ reqwest = { version = "0.13.1", default-features = false, features = [
"system-proxy",
"native-tls-vendored",
]}
similar = { version = "2.7.0", features = ["inline"] }

# Lint configuration for the entire workspace
[workspace.lints.clippy]
Expand Down
14 changes: 6 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ Completion · Go to Definition · Find References · Go to Implementation · Hov
- Static analysis with 40+ diagnostic rules
- Code formatting and style enforcement
- EmmyLua / Luacats annotation support

---

## Usage
Expand Down Expand Up @@ -132,13 +131,12 @@ emmylua_doc_cli ./src --output ./docs

## Documentation

| Resource | Link |
|----------|------|
| Features Guide | [features_EN.md](./docs/features/features_EN.md) |
| Configuration | [emmyrc_json_EN.md](./docs/config/emmyrc_json_EN.md) |
| Annotations Reference | [annotations_EN](./docs/emmylua_doc/annotations_EN/README.md) |
| Code Style | [EmmyLuaCodeStyle](https://github.com/CppCXY/EmmyLuaCodeStyle/blob/master/README_EN.md) |
| External Formatters | [external_formatter_options_EN.md](./docs/external_format/external_formatter_options_EN.md) |
- [**Features Guide**](./docs/features/features_EN.md) - Comprehensive feature documentation
- [**Configuration**](./docs/config/emmyrc_json_EN.md) - Advanced configuration options
- [**Formatter Guide**](./docs/emmylua_formatter/README_EN.md) - Formatter behavior, options, and usage guide
- [**Annotations Reference**](./docs/emmylua_doc/annotations_EN/README.md) - Detailed annotation documentation
- [**Old Formatter**](https://github.com/CppCXY/EmmyLuaCodeStyle/blob/master/README_EN.md) - Formatting and style guidelines
- [**External Formatter Integration**](./docs/external_format/external_formatter_options_EN.md) - Using external formatters

---

Expand Down
3 changes: 0 additions & 3 deletions crates/emmylua_code_style/README.md

This file was deleted.

Loading
Loading