Merge main into feat/fugitive-support
This commit is contained in:
commit
b27057f6ee
29
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
29
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
---
|
||||||
|
name: 🐛 Bug Report
|
||||||
|
about: Create a report to help us improve difi
|
||||||
|
title: "[BUG] "
|
||||||
|
labels: bug
|
||||||
|
assignees: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
|
||||||
|
1. Go to '...'
|
||||||
|
2. Press keys '...'
|
||||||
|
3. See error
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**Environment (please complete the following information):**
|
||||||
|
|
||||||
|
- OS: [e.g. macOS / Linux / Windows]
|
||||||
|
- Terminal Emulator: [e.g. iTerm2, Alacritty, tmux]
|
||||||
|
- Difi Version: [e.g. v0.1.0 or commit hash]
|
||||||
|
|
||||||
|
**Screenshots**
|
||||||
|
If applicable, add screenshots to help explain your problem.
|
||||||
16
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
16
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
---
|
||||||
|
name: 🚀 Feature Request
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: "[FEAT] "
|
||||||
|
labels: enhancement
|
||||||
|
assignees: ''
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. Ex: I'm always frustrated when...
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
**Describe alternatives you've considered**
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
15
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
15
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
## Description
|
||||||
|
Please include a summary of the change and which issue is fixed.
|
||||||
|
|
||||||
|
Fixes # (issue)
|
||||||
|
|
||||||
|
## Type of change
|
||||||
|
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
|
||||||
|
- [ ] 🚀 New feature (non-breaking change which adds functionality)
|
||||||
|
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
|
||||||
|
- [ ] 📚 Documentation update
|
||||||
|
|
||||||
|
## Checklist:
|
||||||
|
- [ ] My code follows the style guidelines of this project (`go fmt ./...`)
|
||||||
|
- [ ] I have performed a self-review of my own code
|
||||||
|
- [ ] I have added tests that prove my fix is effective or that my feature works
|
||||||
2
LICENSE
2
LICENSE
|
|
@ -1,6 +1,6 @@
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2026 Tommy Guo
|
Copyright (c) 2026 Xiyuan Guo
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
||||||
32
README.md
32
README.md
|
|
@ -10,7 +10,7 @@
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="https://github.com/user-attachments/assets/70c177cb-9ad8-4e53-8837-f5e7b3f22fa0" alt="difi" />
|
<img src= "https://github.com/user-attachments/assets/2cecb580-fe35-47ae-886b-8315226d122b" alt="difi_demo" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## Why difi?
|
## Why difi?
|
||||||
|
|
@ -39,6 +39,20 @@ brew install difi
|
||||||
go install github.com/oug-t/difi/cmd/difi@latest
|
go install github.com/oug-t/difi/cmd/difi@latest
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### AUR (Arch Linux)
|
||||||
|
|
||||||
|
**Binary (pre-built):**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pikaur -S difi-bin
|
||||||
|
```
|
||||||
|
|
||||||
|
**Build from source:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pikaur -S difi
|
||||||
|
```
|
||||||
|
|
||||||
#### Manual (Linux / Windows)
|
#### Manual (Linux / Windows)
|
||||||
|
|
||||||
- Download the binary from Releases and add it to your `$PATH`.
|
- Download the binary from Releases and add it to your `$PATH`.
|
||||||
|
|
@ -107,6 +121,22 @@ Get the ultimate review experience with **[difi.nvim](https://github.com/oug-t/d
|
||||||
|
|
||||||
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
||||||
|
|
||||||
|
## Git Integration
|
||||||
|
|
||||||
|
To use `difi` as a native git command (e.g., `git difi`), add it as an alias in your global git config:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git config --global alias.difi '!difi'
|
||||||
|
```
|
||||||
|
|
||||||
|
Now you can run it directly from git:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git difi
|
||||||
|
```
|
||||||
|
|
||||||
|
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ func main() {
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
target := "main"
|
target := "HEAD"
|
||||||
if flag.NArg() > 0 {
|
if flag.NArg() > 0 {
|
||||||
target = flag.Arg(0)
|
target = flag.Arg(0)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import (
|
||||||
"github.com/charmbracelet/bubbles/viewport"
|
"github.com/charmbracelet/bubbles/viewport"
|
||||||
tea "github.com/charmbracelet/bubbletea"
|
tea "github.com/charmbracelet/bubbletea"
|
||||||
"github.com/charmbracelet/lipgloss"
|
"github.com/charmbracelet/lipgloss"
|
||||||
|
"github.com/charmbracelet/x/ansi"
|
||||||
|
|
||||||
"github.com/oug-t/difi/internal/config"
|
"github.com/oug-t/difi/internal/config"
|
||||||
"github.com/oug-t/difi/internal/git"
|
"github.com/oug-t/difi/internal/git"
|
||||||
|
|
@ -416,7 +417,7 @@ func (m *Model) updateSizes() {
|
||||||
}
|
}
|
||||||
m.fileList.SetSize(treeWidth, listHeight)
|
m.fileList.SetSize(treeWidth, listHeight)
|
||||||
|
|
||||||
m.diffViewport.Width = m.width - treeWidth - 2
|
m.diffViewport.Width = m.width - treeWidth - 4 // border (2) + padding (2) from tree pane
|
||||||
m.diffViewport.Height = listHeight
|
m.diffViewport.Height = listHeight
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -469,8 +470,14 @@ func (m Model) View() string {
|
||||||
end = len(m.diffLines)
|
end = len(m.diffLines)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 5 for line number (Width 4 + MarginRight 1), 2 for indent
|
||||||
|
maxLineWidth := m.diffViewport.Width - 7
|
||||||
|
if maxLineWidth < 1 {
|
||||||
|
maxLineWidth = 1
|
||||||
|
}
|
||||||
|
|
||||||
for i := start; i < end; i++ {
|
for i := start; i < end; i++ {
|
||||||
line := m.diffLines[i]
|
line := ansi.Truncate(m.diffLines[i], maxLineWidth, "")
|
||||||
|
|
||||||
var numStr string
|
var numStr string
|
||||||
mode := "relative"
|
mode := "relative"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user