mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-02-02 15:48:05 +00:00
Compare commits
175 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee47821089 | ||
|
|
b834ce04f7 | ||
|
|
6a62d73d7f | ||
|
|
440842ed34 | ||
|
|
d0563e4a29 | ||
|
|
bc404bfbea | ||
| 923f881725 | |||
| ccc5903290 | |||
|
|
786efc48fa | ||
| 2a11a28422 | |||
| 812a27ea61 | |||
| e73e61f01b | |||
| 314679b4fc | |||
|
|
516b27384a | ||
|
|
9e1af3053d | ||
|
|
9e4f8741b3 | ||
| c0995c1b49 | |||
| c9f1e824c3 | |||
| 3d301daeb1 | |||
| 8b4198dc90 | |||
| 66461f9b1b | |||
| 80851d1efd | |||
|
|
c457c0f3ab | ||
| 9936e4bd76 | |||
| c3a45e2653 | |||
| 506360a027 | |||
|
|
00074ec3ff | ||
|
|
7c7daf89ea | ||
|
|
267c54aa56 | ||
|
|
d72409efc0 | ||
| 3d9e0477b0 | |||
| cfab48eee0 | |||
| 624920b2ab | |||
|
|
fd82f1e36c | ||
|
|
48ec8cd7a7 | ||
|
|
3a61bd2b72 | ||
| 895b0ad353 | |||
| 3c733ec7eb | |||
| 5321ad7bd7 | |||
| 196077bea9 | |||
|
|
75147c7dd6 | ||
| f28ad41f67 | |||
| 61b66d3114 | |||
| 282f760a4f | |||
| 4a9c9b4cb9 | |||
| 16311ee5b4 | |||
| 2fddfa82c0 | |||
| 8f5f44db2d | |||
| 8ad1f5c4d0 | |||
| ac0aa1fbc0 | |||
| e8c6794ff6 | |||
| 4de9a649f0 | |||
|
|
e7f115680e | ||
| f3b4551d0c | |||
| 64725c57dc | |||
| b32ee414e3 | |||
|
|
6ea7807718 | ||
| 6a776bd3dd | |||
| 6ffe581326 | |||
| 5d476e8eed | |||
|
|
bf84c67f08 | ||
| 9cb400dd3f | |||
| fce649619a | |||
| 8b0148e468 | |||
| 9cb27eb9dc | |||
| f1ed88a98e | |||
| ec35f1cb1e | |||
| dab8504cfd | |||
| 0f9a76e36f | |||
|
|
97244d5287 | ||
| 50ea9bea89 | |||
| 688469ad8b | |||
|
|
af32914d71 | ||
|
|
840bd85232 | ||
| c81ee240bf | |||
| e215fe0a2f | |||
| 38e340ac8d | |||
| c9383f955c | |||
| 8eeaea802a | |||
| d626731736 | |||
| e459cd99e7 | |||
| 3e4391adda | |||
| a6400943d2 | |||
| 5ec8e89641 | |||
|
|
115dac4fb4 | ||
|
|
405e2d5c77 | ||
| 535925aeaf | |||
|
|
7fa29ae3d6 | ||
|
|
b1a01b6717 | ||
|
|
b9d2ee01ed | ||
| e81938a04d | |||
| 3bbcb248ba | |||
| 17194755e6 | |||
| 45f95422ef | |||
| b8f0bb570e | |||
| a0d8069455 | |||
|
|
8b1eb0a582 | ||
|
|
9cb10250c5 | ||
| 2836ed19cf | |||
| 21eb5086a9 | |||
| 56f49ab314 | |||
| 5e1a2d0dd0 | |||
| 5fdd26bf80 | |||
| 0c93dd9ad8 | |||
| 9deb613b5b | |||
|
|
bf4031c238 | ||
| 087b33cc97 | |||
|
|
361657cdec | ||
| 4855e56f3c | |||
| c119d4c20b | |||
| 4815e8678b | |||
| 31a45fed19 | |||
| 5aae400c92 | |||
| 26e11047ce | |||
| 1f0826c7e7 | |||
| 9f71f3c8aa | |||
| 5d929c6466 | |||
| afc04db93a | |||
|
|
eca0321e21 | ||
| def3372b9a | |||
|
|
5aaa177756 | ||
| 31a6ea351d | |||
| 333995c7f4 | |||
| d6b24c27a1 | |||
| 89ae4003f9 | |||
| 7a008c3ae8 | |||
| a6f89e80bd | |||
| 3d987e491e | |||
| e1729fd925 | |||
| 4e5dae4161 | |||
| 6b30ebfddb | |||
|
|
0aafae5d97 | ||
| 32cc561d20 | |||
| 784fddea64 | |||
| 0a058aaf22 | |||
| ff6876a56d | |||
| ccbd29fc40 | |||
| 9251225d3e | |||
| 241eed66f5 | |||
| 6de8e92968 | |||
| 2cdda605ef | |||
| 87a4ec8ecf | |||
| 87613d10ec | |||
| f6dc193f6a | |||
| 4adbbdb47a | |||
| bdbe10f612 | |||
| 531488001f | |||
| 4f2b47d5c3 | |||
|
|
dfbdb89aca | ||
|
|
c9489ae50f | ||
| 9fdb4cdfb0 | |||
| f4da515120 | |||
| fae9665671 | |||
| d5e34d168b | |||
| e8b43d76dc | |||
| 4f9757ad2b | |||
| 611a3bfa72 | |||
| 10da4ea372 | |||
| 68525d5ae4 | |||
|
|
7311f2576e | ||
| 721d3c0d15 | |||
| c82e183ff9 | |||
| 1b6a93650b | |||
| aa85bb0c72 | |||
| ceb452aa68 | |||
| 467a1c2ff9 | |||
| f73cd32309 | |||
| 0be2a5b879 | |||
| 8c015ac251 | |||
| 894ec12fd8 | |||
| 8cf3602de1 | |||
| 57c4f0438e | |||
|
|
02907d6a6b | ||
|
|
127edd1b2c | ||
|
|
76dc53b50a |
@@ -8,13 +8,16 @@ indent_style = space
|
|||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.fish]
|
||||||
|
max_line_length = 80
|
||||||
|
|
||||||
[*.md]
|
[*.md]
|
||||||
max_line_length = 100
|
max_line_length = 100
|
||||||
|
|
||||||
[*.lua]
|
[*.lua]
|
||||||
max_line_length = 120
|
max_line_length = 90
|
||||||
|
|
||||||
[*.php]
|
[*.{php,fish}]
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
|
|
||||||
[.git{ignore,modules}]
|
[.git{ignore,modules}]
|
||||||
|
|||||||
45
.gitattributes
vendored
45
.gitattributes
vendored
@@ -1,4 +1,4 @@
|
|||||||
## GITATTRIBUTES FOR WEB PROJECTS
|
## GITATTRIBUTES
|
||||||
#
|
#
|
||||||
# These settings are for any web project.
|
# These settings are for any web project.
|
||||||
#
|
#
|
||||||
@@ -20,20 +20,23 @@
|
|||||||
*.bat text eol=crlf
|
*.bat text eol=crlf
|
||||||
*.cmd text eol=crlf
|
*.cmd text eol=crlf
|
||||||
*.coffee text
|
*.coffee text
|
||||||
*.css text diff=css
|
*.css text diff=css eol=lf
|
||||||
*.htm text diff=html
|
*.fish text diff=shell eol=lf
|
||||||
*.html text diff=html
|
*.htm text diff=html eol=lf
|
||||||
|
*.html text diff=html eol=lf
|
||||||
*.inc text
|
*.inc text
|
||||||
*.ini text
|
*.ini text
|
||||||
*.js text
|
*.js text
|
||||||
*.json text
|
*.json text
|
||||||
*.jsx text
|
*.jsx text
|
||||||
*.less text
|
*.less text
|
||||||
|
*.lua text diff=lua eol=lf
|
||||||
*.ls text
|
*.ls text
|
||||||
*.map text -diff
|
*.map text -diff
|
||||||
*.od text
|
*.od text
|
||||||
*.onlydata text
|
*.onlydata text
|
||||||
*.php text diff=php
|
*.php text diff=php
|
||||||
|
*.plist text eol=lf
|
||||||
*.pl text
|
*.pl text
|
||||||
*.ps1 text eol=crlf
|
*.ps1 text eol=crlf
|
||||||
*.py text diff=python
|
*.py text diff=python
|
||||||
@@ -41,15 +44,18 @@
|
|||||||
*.sass text
|
*.sass text
|
||||||
*.scm text
|
*.scm text
|
||||||
*.scss text diff=css
|
*.scss text diff=css
|
||||||
*.sh text eol=lf
|
*.sh text eol=lf diff=shell
|
||||||
.husky/* text eol=lf
|
.husky/* text eol=lf
|
||||||
*.sql text
|
*.sql text
|
||||||
*.styl text
|
*.styl text
|
||||||
*.tag text
|
*.tag text
|
||||||
|
*.tmux text eol=lf diff=tmux
|
||||||
*.ts text
|
*.ts text
|
||||||
*.tsx text
|
*.tsx text
|
||||||
|
*.vim text eol=lf
|
||||||
*.xml text
|
*.xml text
|
||||||
*.xhtml text diff=html
|
*.xhtml text diff=html
|
||||||
|
*.zsh text diff=zsh eol=lf
|
||||||
|
|
||||||
# Docker
|
# Docker
|
||||||
Dockerfile text
|
Dockerfile text
|
||||||
@@ -68,6 +74,7 @@ Dockerfile text
|
|||||||
AUTHORS text
|
AUTHORS text
|
||||||
CHANGELOG text
|
CHANGELOG text
|
||||||
CHANGES text
|
CHANGES text
|
||||||
|
CODEOWNERS text
|
||||||
CONTRIBUTING text
|
CONTRIBUTING text
|
||||||
COPYING text
|
COPYING text
|
||||||
copyright text
|
copyright text
|
||||||
@@ -105,6 +112,8 @@ TODO text
|
|||||||
*.config text
|
*.config text
|
||||||
.editorconfig text
|
.editorconfig text
|
||||||
.env text
|
.env text
|
||||||
|
*.env text
|
||||||
|
*.env.* text
|
||||||
.gitattributes text
|
.gitattributes text
|
||||||
.gitconfig text
|
.gitconfig text
|
||||||
.htaccess text
|
.htaccess text
|
||||||
@@ -208,15 +217,37 @@ Procfile text
|
|||||||
|
|
||||||
*.gitignore text
|
*.gitignore text
|
||||||
*.gitkeep text
|
*.gitkeep text
|
||||||
.gitattributes export-ignore
|
.gitattributes text export-ignore
|
||||||
|
*.gitattributes text export-ignore
|
||||||
|
.gitmodules text export-ignore
|
||||||
|
*.gitmodules text export-ignore
|
||||||
**/.gitignore export-ignore
|
**/.gitignore export-ignore
|
||||||
**/.gitkeep export-ignore
|
**/.gitkeep export-ignore
|
||||||
|
|
||||||
# Repo specials
|
# Repo specials
|
||||||
local/bin/* text eol=lf
|
local/bin/* text eol=lf diff=shell
|
||||||
|
local/bin/*.md text eol=lf diff=markdown
|
||||||
config/antigen.zsh text
|
config/antigen.zsh text
|
||||||
git/* text
|
git/* text
|
||||||
**/git/* text
|
**/git/* text
|
||||||
**/alias text
|
**/alias text
|
||||||
ssh/* text
|
ssh/* text
|
||||||
|
ssh/shared.d/* text
|
||||||
|
ssh/local.d/* text
|
||||||
|
|
||||||
|
# Auto-generated rules - 2025-04-16 10:28:04
|
||||||
|
# Shell scripts detected by content
|
||||||
|
install text eol=lf diff=shell
|
||||||
|
|
||||||
|
# File extension-based rules
|
||||||
|
*.1 text eol=lf
|
||||||
|
*.applescript text eol=lf
|
||||||
|
*.d/work-git text eol=lf
|
||||||
|
*.dirs text eol=lf
|
||||||
|
*.example text eol=lf
|
||||||
|
*.itermcolors text eol=lf
|
||||||
|
*.locale text eol=lf
|
||||||
|
*.python-version text eol=lf
|
||||||
|
*.snippets text eol=lf
|
||||||
|
*.theme text eol=lf
|
||||||
|
*.yamlfmt text eol=lf
|
||||||
|
|||||||
18
.github/workflows/changelog.yml
vendored
18
.github/workflows/changelog.yml
vendored
@@ -1,18 +1,32 @@
|
|||||||
---
|
---
|
||||||
|
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||||
name: Debug Changelog # Workflow name displayed on GitHub
|
name: Debug Changelog # Workflow name displayed on GitHub
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch: # Trigger manually
|
workflow_dispatch: # Trigger manually
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: read-all
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
debug-changelog:
|
debug-changelog:
|
||||||
runs-on: self-hosted
|
runs-on: self-hosted
|
||||||
|
|
||||||
|
permissions: write-all
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Create changelog text
|
- name: Create changelog text
|
||||||
id: changelog
|
id: changelog
|
||||||
uses: loopwerk/tag-changelog@v1
|
uses: loopwerk/tag-changelog@941366edb8920e2071eae0449031830984b9f26e # v1.3.0
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
config_file: .github/tag-changelog-config.js
|
config_file: .github/tag-changelog-config.js
|
||||||
|
|
||||||
- name: 'Echo results'
|
- name: 'Echo results'
|
||||||
id: output-changelog
|
id: output-changelog
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
28
.github/workflows/linters.yml
vendored
28
.github/workflows/linters.yml
vendored
@@ -1,29 +1,47 @@
|
|||||||
---
|
---
|
||||||
name: reviewdog
|
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||||
|
name: Reviewdog
|
||||||
|
|
||||||
on: [push]
|
on: [push]
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: read-all
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
linters:
|
linters:
|
||||||
name: Linters
|
name: Linters
|
||||||
|
|
||||||
runs-on: self-hosted
|
runs-on: self-hosted
|
||||||
|
|
||||||
|
permissions: write-all
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: GitHub Actions
|
- name: GitHub Actions
|
||||||
uses: reviewdog/action-actionlint@v1
|
uses: reviewdog/action-actionlint@a5524e1c19e62881d79c1f1b9b6f09f16356e281 # v1.65.2
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
reporter: github-pr-review
|
reporter: github-pr-review
|
||||||
|
|
||||||
- name: detect-secrets
|
- name: detect-secrets
|
||||||
uses: reviewdog/action-detect-secrets@master
|
uses: reviewdog/action-detect-secrets@master
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
reporter: github-pr-review
|
reporter: github-pr-review
|
||||||
|
|
||||||
- name: markdownlint
|
- name: markdownlint
|
||||||
uses: reviewdog/action-markdownlint@v0
|
uses: reviewdog/action-markdownlint@3667398db9118d7e78f7a63d10e26ce454ba5f58 # v0.26.2
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
reporter: github-pr-review
|
reporter: github-pr-review
|
||||||
|
|
||||||
- name: shfmt
|
- name: shfmt
|
||||||
uses: reviewdog/action-shfmt@v1
|
uses: reviewdog/action-shfmt@d8f080930b9be5847b4f97e9f4122b81a82aaeac # v1.0.4
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
shfmt_flags: |
|
shfmt_flags: |
|
||||||
|
|||||||
28
.github/workflows/new-release.yml
vendored
28
.github/workflows/new-release.yml
vendored
@@ -1,38 +1,48 @@
|
|||||||
---
|
---
|
||||||
|
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||||
name: Release Daily State
|
name: Release Daily State
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 21 * * *' # 00:00 at Europe/Helsinki
|
- cron: '0 21 * * *' # 00:00 at Europe/Helsinki
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: read-all
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
new-daily-release:
|
new-daily-release:
|
||||||
runs-on: self-hosted
|
runs-on: self-hosted
|
||||||
permissions:
|
|
||||||
contents: write
|
permissions: write-all
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
created: ${{ steps.daily-version.outputs.created }}
|
created: ${{ steps.daily-version.outputs.created }}
|
||||||
version: ${{ steps.daily-version.outputs.version }}
|
version: ${{ steps.daily-version.outputs.version }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
- name: Create tag if necessary
|
- name: Create tag if necessary
|
||||||
uses: fregante/daily-version-action@v2
|
uses: fregante/daily-version-action@fb1a60b7c4daf1410cd755e360ebec3901e58588 # v2.1.3
|
||||||
id: daily-version
|
id: daily-version
|
||||||
|
|
||||||
- name: Create changelog text
|
- name: Create changelog text
|
||||||
if: steps.daily-version.outputs.created
|
if: steps.daily-version.outputs.created
|
||||||
id: changelog
|
id: changelog
|
||||||
uses: loopwerk/tag-changelog@v1
|
uses: loopwerk/tag-changelog@941366edb8920e2071eae0449031830984b9f26e # v1.3.0
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
config_file: .github/tag-changelog-config.js
|
config_file: .github/tag-changelog-config.js
|
||||||
|
|
||||||
- name: Create release
|
- name: Create release
|
||||||
if: steps.daily-version.outputs.created
|
if: steps.daily-version.outputs.created
|
||||||
uses: actions/create-release@latest
|
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v2.2.2
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
tag_name: ${{ steps.daily-version.outputs.version }}
|
tag_name: ${{ steps.daily-version.outputs.version }}
|
||||||
release_name: Release ${{ steps.daily-version.outputs.version }}
|
name: Release ${{ steps.daily-version.outputs.version }}
|
||||||
body: ${{ steps.changelog.outputs.changes }}
|
body: ${{ steps.changelog.outputs.changes }}
|
||||||
|
|||||||
20
.github/workflows/pre-commit-autoupdate.yml
vendored
20
.github/workflows/pre-commit-autoupdate.yml
vendored
@@ -1,21 +1,35 @@
|
|||||||
---
|
---
|
||||||
|
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||||
name: Pre-commit autoupdate
|
name: Pre-commit autoupdate
|
||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
# At 04:00 on Monday and Thursday.
|
# At 04:00 on Monday and Thursday.
|
||||||
- cron: "0 4 * * 1,4"
|
- cron: "0 4 * * 1,4"
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: read-all
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
auto-update:
|
auto-update:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
- uses: actions/setup-python@v5.4.0
|
|
||||||
|
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||||
|
|
||||||
- run: pip install pre-commit && pre-commit autoupdate
|
- run: pip install pre-commit && pre-commit autoupdate
|
||||||
- uses: peter-evans/create-pull-request@v7
|
|
||||||
|
- uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
branch: update/pre-commit-hooks
|
branch: update/pre-commit-hooks
|
||||||
|
|||||||
10
.github/workflows/semantic-pr.yml
vendored
10
.github/workflows/semantic-pr.yml
vendored
@@ -1,4 +1,5 @@
|
|||||||
---
|
---
|
||||||
|
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||||
name: Semantic PR
|
name: Semantic PR
|
||||||
|
|
||||||
on:
|
on:
|
||||||
@@ -8,11 +9,18 @@ on:
|
|||||||
- edited
|
- edited
|
||||||
- synchronize
|
- synchronize
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: read-all
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
semantic-pr:
|
semantic-pr:
|
||||||
runs-on: self-hosted
|
runs-on: self-hosted
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: amannn/action-semantic-pull-request@v5.5.3
|
- uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
with:
|
with:
|
||||||
|
|||||||
11
.github/workflows/sync-labels.yml
vendored
11
.github/workflows/sync-labels.yml
vendored
@@ -1,4 +1,5 @@
|
|||||||
---
|
---
|
||||||
|
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||||
name: Sync labels
|
name: Sync labels
|
||||||
|
|
||||||
# yamllint disable-line rule:truthy
|
# yamllint disable-line rule:truthy
|
||||||
@@ -14,10 +15,18 @@ on:
|
|||||||
workflow_call:
|
workflow_call:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: read-all
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
SyncLabels:
|
SyncLabels:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
issues: write
|
issues: write
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
steps:
|
||||||
- uses: ivuorinen/actions/sync-labels@main
|
- uses: ivuorinen/actions/sync-labels@main
|
||||||
|
|||||||
44
.github/workflows/update-submodules.yml
vendored
44
.github/workflows/update-submodules.yml
vendored
@@ -1,39 +1,55 @@
|
|||||||
---
|
---
|
||||||
|
# yaml-language-server: https://json.schemastore.org/github-workflow.json
|
||||||
name: Update submodules
|
name: Update submodules
|
||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
# At 04:00 on Monday and Thursday.
|
# At 04:00 on Monday and Thursday.
|
||||||
- cron: "0 4 * * 1,4"
|
- cron: "0 4 * * 1"
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: read-all
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
update-submodules:
|
update-submodules:
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
issues: write
|
|
||||||
pull-requests: write
|
|
||||||
runs-on: self-hosted
|
runs-on: self-hosted
|
||||||
|
|
||||||
|
permissions: write-all
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
fetch-depth: 0
|
fetch-depth: 2
|
||||||
token: ${{secrets.GITHUB_TOKEN}}
|
token: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
|
||||||
- name: Config Git User
|
- name: Config Git User
|
||||||
run: |
|
run: |
|
||||||
git config --global user.name "${{ github.actor }}"
|
git config --global user.name "${{ github.actor }}"
|
||||||
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
|
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
|
||||||
|
|
||||||
- name: Update submodules
|
- name: Update submodules
|
||||||
run: |
|
run: |
|
||||||
if git commit -am"chore(git): Update submodules (automated)
|
git submodule sync
|
||||||
|
git submodule foreach --quiet '
|
||||||
$(git submodule --quiet foreach \
|
tag="$(git describe --tags --abbrev=0 origin/HEAD)"
|
||||||
'tag="$(git describe --tags --abbrev=0 origin/HEAD)"
|
|
||||||
if [ "$(git describe --tags)" != "$tag" ]; then
|
if [ "$(git describe --tags)" != "$tag" ]; then
|
||||||
git checkout --quiet "$tag"
|
git checkout --quiet "$tag"
|
||||||
echo "$name" "$tag"
|
echo "$name updated to $tag"
|
||||||
fi')"
|
fi
|
||||||
then
|
'
|
||||||
|
|
||||||
|
if git diff --quiet; then
|
||||||
|
echo "No updates for submodules."
|
||||||
|
else
|
||||||
|
git add .
|
||||||
|
git commit -m "chore(git): Update submodules (automated)"
|
||||||
git show --raw
|
git show --raw
|
||||||
git push
|
git push
|
||||||
fi
|
fi
|
||||||
|
|||||||
16
.gitignore
vendored
16
.gitignore
vendored
@@ -3,6 +3,8 @@
|
|||||||
*.bak
|
*.bak
|
||||||
*.log
|
*.log
|
||||||
*.socket
|
*.socket
|
||||||
|
*.swp
|
||||||
|
*.old
|
||||||
*cache
|
*cache
|
||||||
.env
|
.env
|
||||||
.idea
|
.idea
|
||||||
@@ -22,6 +24,10 @@ config/npm/npmrc
|
|||||||
config/nvim/lazy-lock.json
|
config/nvim/lazy-lock.json
|
||||||
config/nvim/spell/*
|
config/nvim/spell/*
|
||||||
!config/nvim/spell/.gitkeep
|
!config/nvim/spell/.gitkeep
|
||||||
|
config/git/local.d/*
|
||||||
|
!config/git/local.d/.gitkeep
|
||||||
|
config/vim/fzf
|
||||||
|
config/vim/plugged/*
|
||||||
config/zed/*
|
config/zed/*
|
||||||
!config/zed/settings.json
|
!config/zed/settings.json
|
||||||
config/zsh/.zcompdump
|
config/zsh/.zcompdump
|
||||||
@@ -33,3 +39,13 @@ lock
|
|||||||
node_modules
|
node_modules
|
||||||
ssh/local.d/*
|
ssh/local.d/*
|
||||||
!ssh/local.d/.gitkeep
|
!ssh/local.d/.gitkeep
|
||||||
|
config/fish/fish_variables
|
||||||
|
**/exports.secret.fish
|
||||||
|
**/exports-secret.fish
|
||||||
|
config/fish/completions/asdf.fish
|
||||||
|
config/vim/.netrwhist
|
||||||
|
config/vim/extra/*
|
||||||
|
config/gh/hosts.yml
|
||||||
|
dependency-check-report.html
|
||||||
|
local/bin/yabai
|
||||||
|
local/man/yabai.1
|
||||||
|
|||||||
12
.gitmodules
vendored
12
.gitmodules
vendored
@@ -74,18 +74,12 @@
|
|||||||
url = https://github.com/erikw/tmux-dark-notify.git
|
url = https://github.com/erikw/tmux-dark-notify.git
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
|
|
||||||
[submodule "asdf"]
|
|
||||||
path = local/bin/asdf
|
|
||||||
url = https://github.com/asdf-vm/asdf.git
|
|
||||||
ignore = dirty
|
|
||||||
|
|
||||||
[submodule "antidote"]
|
[submodule "antidote"]
|
||||||
path = tools/antidote
|
path = tools/antidote
|
||||||
url = https://github.com/mattmc3/antidote.git
|
url = https://github.com/mattmc3/antidote.git
|
||||||
shallow = true
|
shallow = true
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
|
|
||||||
[submodule "dotbot-asdf"]
|
[submodule "tmux/tmux-resurrect"]
|
||||||
path = tools/dotbot-asdf
|
path = config/tmux/plugins/tmux-resurrect
|
||||||
url = https://github.com/sobolevn/dotbot-asdf
|
url = https://github.com/tmux-plugins/tmux-resurrect.git
|
||||||
ignore = dirty
|
|
||||||
|
|||||||
3
.ignore
3
.ignore
@@ -1,7 +1,10 @@
|
|||||||
|
**/__pycache__/**
|
||||||
.git/**
|
.git/**
|
||||||
config/cheat/cheatsheets/community/**
|
config/cheat/cheatsheets/community/**
|
||||||
|
config/tmux/plugins/**
|
||||||
node_modules
|
node_modules
|
||||||
tools/antidote/**
|
tools/antidote/**
|
||||||
tools/dotbot-brew/**
|
tools/dotbot-brew/**
|
||||||
tools/dotbot-include/**
|
tools/dotbot-include/**
|
||||||
tools/dotbot/**
|
tools/dotbot/**
|
||||||
|
*.pyc
|
||||||
|
|||||||
@@ -23,13 +23,13 @@ repos:
|
|||||||
args: [--autofix, --no-sort-keys]
|
args: [--autofix, --no-sort-keys]
|
||||||
|
|
||||||
- repo: https://github.com/igorshubovych/markdownlint-cli
|
- repo: https://github.com/igorshubovych/markdownlint-cli
|
||||||
rev: v0.44.0
|
rev: v0.45.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: markdownlint
|
- id: markdownlint
|
||||||
args: [-c, .markdownlint.json, --fix]
|
args: [-c, .markdownlint.json, --fix]
|
||||||
|
|
||||||
- repo: https://github.com/adrienverge/yamllint
|
- repo: https://github.com/adrienverge/yamllint
|
||||||
rev: v1.35.1
|
rev: v1.37.1
|
||||||
hooks:
|
hooks:
|
||||||
- id: yamllint
|
- id: yamllint
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ repos:
|
|||||||
- id: shellcheck
|
- id: shellcheck
|
||||||
|
|
||||||
- repo: https://github.com/scop/pre-commit-shfmt
|
- repo: https://github.com/scop/pre-commit-shfmt
|
||||||
rev: v3.10.0-2
|
rev: v3.11.0-1
|
||||||
hooks:
|
hooks:
|
||||||
- id: shfmt
|
- id: shfmt
|
||||||
|
|
||||||
@@ -49,11 +49,17 @@ repos:
|
|||||||
- id: actionlint
|
- id: actionlint
|
||||||
|
|
||||||
- repo: https://github.com/renovatebot/pre-commit-hooks
|
- repo: https://github.com/renovatebot/pre-commit-hooks
|
||||||
rev: 39.169.3
|
rev: 40.36.8
|
||||||
hooks:
|
hooks:
|
||||||
- id: renovate-config-validator
|
- id: renovate-config-validator
|
||||||
|
|
||||||
- repo: https://github.com/JohnnyMorganz/StyLua
|
- repo: https://github.com/JohnnyMorganz/StyLua
|
||||||
rev: v2.0.2
|
rev: v2.1.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: stylua # or stylua-system / stylua-github
|
- id: stylua # or stylua-system / stylua-github
|
||||||
|
|
||||||
|
- repo: https://github.com/hugoh/pre-commit-fish.git
|
||||||
|
rev: v1.2
|
||||||
|
hooks:
|
||||||
|
- id: fish_syntax
|
||||||
|
- id: fish_indent
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
3.13.2
|
3.13.3
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
git submodule sync --recursive
|
||||||
|
|
||||||
# dotbot and plugins
|
# dotbot and plugins
|
||||||
git submodule add --name dotbot \
|
git submodule add --name dotbot \
|
||||||
-f https://github.com/anishathalye/dotbot.git tools/dotbot
|
-f https://github.com/anishathalye/dotbot.git tools/dotbot
|
||||||
@@ -9,16 +11,12 @@ git submodule add --name dotbot-include \
|
|||||||
-f https://gitlab.com/gnfzdz/dotbot-include.git tools/dotbot-include
|
-f https://gitlab.com/gnfzdz/dotbot-include.git tools/dotbot-include
|
||||||
git submodule add --name dotbot-pip \
|
git submodule add --name dotbot-pip \
|
||||||
-f https://github.com/sobolevn/dotbot-pip.git tools/dotbot-pip
|
-f https://github.com/sobolevn/dotbot-pip.git tools/dotbot-pip
|
||||||
git submodule add --name dotbot-asdf \
|
|
||||||
-f https://github.com/sobolevn/dotbot-asdf tools/dotbot-asdf
|
|
||||||
|
|
||||||
# other repos
|
# other repos
|
||||||
git submodule add --name cheat-community \
|
git submodule add --name cheat-community \
|
||||||
-f https://github.com/cheat/cheatsheets.git config/cheat/cheatsheets/community
|
-f https://github.com/cheat/cheatsheets.git config/cheat/cheatsheets/community
|
||||||
git submodule add --name cheat-tldr \
|
git submodule add --name cheat-tldr \
|
||||||
-f https://github.com/ivuorinen/cheatsheet-tldr.git config/cheat/cheatsheets/tldr
|
-f https://github.com/ivuorinen/cheatsheet-tldr.git config/cheat/cheatsheets/tldr
|
||||||
git submodule add --name asdf \
|
|
||||||
-f https://github.com/asdf-vm/asdf.git local/bin/asdf
|
|
||||||
git submodule add --name antidote \
|
git submodule add --name antidote \
|
||||||
--depth 1 \
|
--depth 1 \
|
||||||
-f https://github.com/mattmc3/antidote.git tools/antidote
|
-f https://github.com/mattmc3/antidote.git tools/antidote
|
||||||
@@ -28,6 +26,8 @@ git submodule add --name tmux/tmux-continuum \
|
|||||||
-f https://github.com/tmux-plugins/tmux-continuum config/tmux/plugins/tmux-continuum
|
-f https://github.com/tmux-plugins/tmux-continuum config/tmux/plugins/tmux-continuum
|
||||||
git submodule add --name tmux/tmux-mode-indicator \
|
git submodule add --name tmux/tmux-mode-indicator \
|
||||||
-f https://github.com/MunifTanjim/tmux-mode-indicator.git config/tmux/plugins/tmux-mode-indicator
|
-f https://github.com/MunifTanjim/tmux-mode-indicator.git config/tmux/plugins/tmux-mode-indicator
|
||||||
|
git submodule add --name tmux/tmux-resurrect \
|
||||||
|
-f https://github.com/tmux-plugins/tmux-resurrect.git config/tmux/plugins/tmux-resurrect
|
||||||
git submodule add --name tmux/tmux-sensible \
|
git submodule add --name tmux/tmux-sensible \
|
||||||
-f https://github.com/tmux-plugins/tmux-sensible.git config/tmux/plugins/tmux-sensible
|
-f https://github.com/tmux-plugins/tmux-sensible.git config/tmux/plugins/tmux-sensible
|
||||||
git submodule add --name tmux/tmux-sessionist \
|
git submodule add --name tmux/tmux-sessionist \
|
||||||
@@ -53,10 +53,20 @@ done
|
|||||||
git config -f .gitmodules submodule.antidote.shallow true
|
git config -f .gitmodules submodule.antidote.shallow true
|
||||||
|
|
||||||
# remove old submodules
|
# remove old submodules
|
||||||
[ -d "config/tmux/plugins/tpm" ] && rm -rf config/tmux/plugins/tpm
|
folders=(
|
||||||
[ -d "config/tmux/plugins/tmux" ] && rm -rf config/tmux/plugins/tmux
|
"config/tmux/plugins/tpm"
|
||||||
[ -d "config/tmux/plugins/tmux-menus" ] && rm -rf config/tmux/plugins/tmux-menus
|
"config/tmux/plugins/tmux"
|
||||||
[ -d "config/tmux/plugins/tmux-resurrect" ] && rm -rf config/tmux/plugins/tmux-resurrect
|
"config/tmux/plugins/tmux-menus"
|
||||||
[ -d "tools/dotbot-crontab" ] && rm -rf tools/dotbot-crontab
|
"tools/dotbot-crontab"
|
||||||
[ -d "tools/dotbot-snap" ] && rm -rf tools/dotbot-snap
|
"tools/dotbot-snap"
|
||||||
[ -d "config/nvim-kickstart" ] && rm -rf config/nvim-kickstart
|
"config/nvim-kickstart"
|
||||||
|
"local/bin/asdf"
|
||||||
|
"local/asdf"
|
||||||
|
"tools/dotbot-asdf"
|
||||||
|
)
|
||||||
|
|
||||||
|
for folder in "${folders[@]}"; do
|
||||||
|
[ -d "$folder" ] \
|
||||||
|
&& rm -rf "$folder" \
|
||||||
|
&& msgr run_done "Removed old submodule $folder"
|
||||||
|
done
|
||||||
|
|||||||
@@ -25,3 +25,6 @@ x-have antidot && {
|
|||||||
PROMPT_DIRTRIM=3
|
PROMPT_DIRTRIM=3
|
||||||
PROMPT_COMMAND='PS1_CMD1=$(git branch --show-current 2>/dev/null)'
|
PROMPT_COMMAND='PS1_CMD1=$(git branch --show-current 2>/dev/null)'
|
||||||
PS1='\[\e[95m\]\u\[\e[0m\]@\[\e[38;5;22;2m\]\h\[\e[0m\] \[\e[38;5;33m\]\w\[\e[0m\] \[\e[92;2m\]${PS1_CMD1}\n\[\e[39m\]➜\[\e[0m\] '
|
PS1='\[\e[95m\]\u\[\e[0m\]@\[\e[38;5;22;2m\]\h\[\e[0m\] \[\e[38;5;33m\]\w\[\e[0m\] \[\e[92;2m\]${PS1_CMD1}\n\[\e[39m\]➜\[\e[0m\] '
|
||||||
|
|
||||||
|
# Added by LM Studio CLI (lms)
|
||||||
|
export PATH="$PATH:$HOME/.lmstudio/bin"
|
||||||
|
|||||||
@@ -1,2 +1 @@
|
|||||||
use node
|
use node
|
||||||
use asdf
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
"work": [
|
"work": [
|
||||||
{
|
{
|
||||||
"key": "user.email",
|
"key": "user.email",
|
||||||
"value": "ismo.vuorinen@vincit.fi"
|
"value": "ismo.vuorinen@svea.com"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "user.name",
|
"key": "user.name",
|
||||||
@@ -31,4 +31,4 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
lts/*
|
v22.14.0
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
golang 1.23.4
|
|
||||||
rust 1.83.0
|
|
||||||
direnv 2.35.0
|
|
||||||
fd 10.2.0
|
|
||||||
1password-cli 2.30.3
|
|
||||||
age 1.2.1
|
|
||||||
dotenv-linter 3.3.0
|
|
||||||
editorconfig-checker 2.8.0
|
|
||||||
github-cli 2.64.0
|
|
||||||
hadolint 2.12.0
|
|
||||||
kubectl 1.32.0
|
|
||||||
pre-commit 4.0.1
|
|
||||||
ripgrep 14.1.1
|
|
||||||
shellcheck 0.10.0
|
|
||||||
shfmt 3.10.0
|
|
||||||
terragrunt 0.71.1
|
|
||||||
tf-summarize 0.3.14
|
|
||||||
yamllint 1.35.1
|
|
||||||
yq 4.44.6
|
|
||||||
@@ -12,7 +12,6 @@ export PATH="$HOME/.local/bin:$DOTFILES/local/bin:$LOCAL_SHARE/nvim/mason/bin:$L
|
|||||||
export SHARED_SCRIPTS_SOURCED=0
|
export SHARED_SCRIPTS_SOURCED=0
|
||||||
|
|
||||||
source "$DOTFILES/config/shared.sh"
|
source "$DOTFILES/config/shared.sh"
|
||||||
source "${XDG_CONFIG_HOME:-$HOME/.config}/asdf-direnv/zshrc"
|
|
||||||
|
|
||||||
# zsh completions directory
|
# zsh completions directory
|
||||||
[ -z "$ZSH_COMPLETIONS" ] && export ZSH_COMPLETIONS="$XDG_CONFIG_HOME/zsh/completion"
|
[ -z "$ZSH_COMPLETIONS" ] && export ZSH_COMPLETIONS="$XDG_CONFIG_HOME/zsh/completion"
|
||||||
@@ -23,7 +22,6 @@ FPATH="$ZSH_COMPLETIONS:$FPATH"
|
|||||||
ZSH_COMPDUMP="$XDG_CACHE_HOME/zsh/zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
|
ZSH_COMPDUMP="$XDG_CACHE_HOME/zsh/zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
|
||||||
|
|
||||||
source "$DOTFILES/config/zsh/antidote.zsh"
|
source "$DOTFILES/config/zsh/antidote.zsh"
|
||||||
# source "$DOTFILES/config/zsh/prompt.zsh"
|
|
||||||
|
|
||||||
# Function to source FZF configuration
|
# Function to source FZF configuration
|
||||||
source_fzf_config()
|
source_fzf_config()
|
||||||
@@ -51,10 +49,6 @@ setup_tmux_window_name_plugin()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ -n $GHOSTTY_RESOURCES_DIR ]]; then
|
|
||||||
source "$GHOSTTY_RESOURCES_DIR"/shell-integration/zsh/ghostty-integration
|
|
||||||
fi
|
|
||||||
|
|
||||||
source_fzf_config
|
source_fzf_config
|
||||||
setup_tmux_window_name_plugin
|
setup_tmux_window_name_plugin
|
||||||
x-have antidot && eval "$(antidot init)"
|
x-have antidot && eval "$(antidot init)"
|
||||||
@@ -66,3 +60,6 @@ bashcompinit
|
|||||||
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||||
export P10K_CONFIG="$DOTFILES/config/zsh/p10k.zsh"
|
export P10K_CONFIG="$DOTFILES/config/zsh/p10k.zsh"
|
||||||
[[ ! -f "$P10K_CONFIG" ]] || source "$P10K_CONFIG"
|
[[ ! -f "$P10K_CONFIG" ]] || source "$P10K_CONFIG"
|
||||||
|
|
||||||
|
# Added by LM Studio CLI (lms)
|
||||||
|
export PATH="$PATH:$HOME/.lmstudio/bin"
|
||||||
|
|||||||
@@ -115,6 +115,13 @@ run = ['layout floating']
|
|||||||
if.app-id = 'com.apple.backup.launcher' # TimeMachine
|
if.app-id = 'com.apple.backup.launcher' # TimeMachine
|
||||||
run = ['layout floating']
|
run = ['layout floating']
|
||||||
|
|
||||||
|
[[on-window-detected]]
|
||||||
|
if.app-id = 'com.philipyoungg.session-setapp' # Session app (Setapp)
|
||||||
|
run = ['layout floating']
|
||||||
|
|
||||||
|
[[on-window-detected]]
|
||||||
|
if.app-id = 'com.microsoft.rdc.macos' # Remote Desktop
|
||||||
|
run = ['layout floating']
|
||||||
|
|
||||||
# Possible values: (qwerty|dvorak)
|
# Possible values: (qwerty|dvorak)
|
||||||
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
|
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ x-have eza && {
|
|||||||
alias ls="eza -h -s=type --git --icons --group-directories-first"
|
alias ls="eza -h -s=type --git --icons --group-directories-first"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
alias vim='vim -u "$XDG_CONFIG_HOME/vim/vimrc"'
|
||||||
|
|
||||||
# Easier navigation: .., ..., ....
|
# Easier navigation: .., ..., ....
|
||||||
alias ..="cd .."
|
alias ..="cd .."
|
||||||
alias ...="cd ../.."
|
alias ...="cd ../.."
|
||||||
|
|||||||
15
config/aqua/aqua.yaml
Normal file
15
config/aqua/aqua.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/aqua-yaml.json
|
||||||
|
# aqua - Declarative CLI Version Manager
|
||||||
|
# https://aquaproj.github.io/
|
||||||
|
# checksum:
|
||||||
|
# enabled: true
|
||||||
|
# require_checksum: true
|
||||||
|
# supported_envs:
|
||||||
|
# - all
|
||||||
|
registries:
|
||||||
|
- type: standard
|
||||||
|
ref: v4.346.0 # renovate: depName=aquaproj/aqua-registry
|
||||||
|
packages:
|
||||||
|
- name: cli/cli
|
||||||
|
version: 'v2.69.0'
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
### Do not edit. This was autogenerated by 'asdf direnv setup' ###
|
|
||||||
export ASDF_DIRENV_BIN="$(asdf where direnv)/bin/direnv"
|
|
||||||
eval "$($ASDF_DIRENV_BIN hook zsh)"
|
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
// These are golang packages I use,
|
// These are golang packages I use,
|
||||||
// so they should be available with all versions
|
// so they should be available with all versions
|
||||||
|
|
||||||
|
// Aqua is a package manager like asdf, or Brew
|
||||||
|
github.com/aquaproj/aqua/v2/cmd/aqua@latest
|
||||||
// Git Profile allows you to switch between user profiles in git repos
|
// Git Profile allows you to switch between user profiles in git repos
|
||||||
github.com/dotzero/git-profile@v1.4.0
|
github.com/dotzero/git-profile@v1.4.0
|
||||||
// An extensible command line tool or library to format yaml files.
|
// An extensible command line tool or library to format yaml files.
|
||||||
|
|||||||
@@ -291,35 +291,6 @@ hash shopt 2> /dev/null && shopt -s checkwinsize
|
|||||||
# shellcheck disable=SC2155
|
# shellcheck disable=SC2155
|
||||||
export SHORT_HOST=$(hostname -s)
|
export SHORT_HOST=$(hostname -s)
|
||||||
|
|
||||||
# asdf
|
|
||||||
# https://github.com/asdf-vm/asdf
|
|
||||||
msg "Setting up asdf configuration"
|
|
||||||
export ASDF_DIR="${XDG_BIN_HOME}/asdf"
|
|
||||||
[[ -d $ASDF_DIR ]] && {
|
|
||||||
# [[ -d $ASDF_DIR/completions ]] && FPATH="$ASDF_DIR/completions:$FPATH"
|
|
||||||
# [[ -d $ASDF_DIR/plugins ]] && FPATH="$ASDF_DIR/plugins:$FPATH"
|
|
||||||
|
|
||||||
export ASDF_CONFIG_FILE="${XDG_CONFIG_HOME}/asdf/asdfrc"
|
|
||||||
export ASDF_DATA_DIR="${ASDF_DIR}"
|
|
||||||
export ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME="${XDG_CONFIG_HOME}/asdf/plugin-versions"
|
|
||||||
export ASDF_LOG_FILE="${XDG_CACHE_HOME}/asdf/asdf.log"
|
|
||||||
export ASDF_FORCE_PREPEND=yes
|
|
||||||
## Default package files
|
|
||||||
export ASDF_CRATE_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/cargo-packages"
|
|
||||||
export ASDF_GEM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/gem-packages"
|
|
||||||
export ASDF_GOLANG_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/golang-packages"
|
|
||||||
export ASDF_NPM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/npm-packages"
|
|
||||||
export ASDF_PYTHON_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/python-packages"
|
|
||||||
## Plugin configuration
|
|
||||||
export ASDF_DIRENV_IGNORE_MISSING_PLUGINS=1
|
|
||||||
export ASDF_GOLANG_MOD_VERSION_ENABLED=true
|
|
||||||
export ASDF_NODEJS_LEGACY_FILE_DYNAMIC_STRATEGY="latest_available"
|
|
||||||
## Add asdf to path
|
|
||||||
export PATH="${ASDF_DIR}/bin:${PATH}"
|
|
||||||
|
|
||||||
source "$ASDF_DIR/asdf.sh"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Antidote configuration
|
# Antidote configuration
|
||||||
# https://getantidote.github.io/
|
# https://getantidote.github.io/
|
||||||
msg "Setting up Antidote configuration"
|
msg "Setting up Antidote configuration"
|
||||||
@@ -465,7 +436,7 @@ export TMUX_CONF_DIR="$XDG_CONFIG_HOME/tmux"
|
|||||||
export TMUX_PLUGINS="$TMUX_CONF_DIR/plugins"
|
export TMUX_PLUGINS="$TMUX_CONF_DIR/plugins"
|
||||||
export TMUX_CONF="$TMUX_CONF_DIR/tmux.conf"
|
export TMUX_CONF="$TMUX_CONF_DIR/tmux.conf"
|
||||||
## These settings are for zsh-tmux
|
## These settings are for zsh-tmux
|
||||||
export ZSH_TMUX_AUTOSTART=false
|
export ZSH_TMUX_AUTOSTART=true
|
||||||
export ZSH_TMUX_CONFIG="$TMUX_CONF"
|
export ZSH_TMUX_CONFIG="$TMUX_CONF"
|
||||||
export ZSH_TMUX_UNICODE=true
|
export ZSH_TMUX_UNICODE=true
|
||||||
export ZSH_TMUX_AUTOQUIT=false
|
export ZSH_TMUX_AUTOQUIT=false
|
||||||
@@ -489,4 +460,3 @@ export SQLITE_HISTORY="${XDG_CACHE_HOME}/sqlite_history"
|
|||||||
[ -f "$XDG_CONFIG_HOME/exports-local" ] && source "$XDG_CONFIG_HOME/exports-local"
|
[ -f "$XDG_CONFIG_HOME/exports-local" ] && source "$XDG_CONFIG_HOME/exports-local"
|
||||||
[ -f "$XDG_CONFIG_HOME/exports-$(hostname)" ] && source "$XDG_CONFIG_HOME/exports-$(hostname)"
|
[ -f "$XDG_CONFIG_HOME/exports-$(hostname)" ] && source "$XDG_CONFIG_HOME/exports-$(hostname)"
|
||||||
[ -f "$XDG_CONFIG_HOME/exports-$(hostname)-secret" ] && source "$XDG_CONFIG_HOME/exports-$(hostname)-secret"
|
[ -f "$XDG_CONFIG_HOME/exports-$(hostname)-secret" ] && source "$XDG_CONFIG_HOME/exports-$(hostname)-secret"
|
||||||
|
|
||||||
|
|||||||
108
config/fish/alias.fish
Normal file
108
config/fish/alias.fish
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
# Set aliases for fish shell
|
||||||
|
|
||||||
|
alias vim='vim -u "$XDG_CONFIG_HOME/vim/vimrc"'
|
||||||
|
|
||||||
|
# eza aliases if eza is installed
|
||||||
|
if type -q eza >/dev/null
|
||||||
|
function eza_git -d "Use eza and its git options if in a git repo"
|
||||||
|
if git rev-parse --is-inside-work-tree &>/dev/null
|
||||||
|
eza --group-directories-first --icons=always --smart-group --git $argv
|
||||||
|
else
|
||||||
|
eza --group-directories-first --icons=always --smart-group $argv
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function lsa --wraps='eza_git -al' --description 'eza -al'
|
||||||
|
eza_git -al $argv
|
||||||
|
end
|
||||||
|
|
||||||
|
function ls --wraps='eza_git' --description eza
|
||||||
|
eza_git $argv
|
||||||
|
end
|
||||||
|
|
||||||
|
function ll --wraps='eza_git -l' --description 'eza -l'
|
||||||
|
eza_git -l $argv
|
||||||
|
end
|
||||||
|
|
||||||
|
function l --wraps='eza_git' --description eza
|
||||||
|
eza_git $argv
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Edit fish alias file
|
||||||
|
function .a --wraps='nvim ~/.dotfiles/config/fish/alias.fish' --description 'edit alias.fish'
|
||||||
|
nvim ~/.dotfiles/config/fish/alias.fish $argv
|
||||||
|
end
|
||||||
|
|
||||||
|
# Go to the directory where my projects are stored
|
||||||
|
function .c --wraps='cd ~/Code' --description 'cd ~/Code'
|
||||||
|
cd ~/Code $argv
|
||||||
|
end
|
||||||
|
|
||||||
|
# Go to the directory where the dotfiles are stored
|
||||||
|
function .d --wraps='cd ~/.dotfiles' --description 'cd ~/.dotfiles'
|
||||||
|
cd ~/.dotfiles $argv
|
||||||
|
end
|
||||||
|
|
||||||
|
# Go to the directory where my work codes are stored
|
||||||
|
function .s --wraps='cd ~/Code/s' --description 'cd ~/Code/s'
|
||||||
|
cd ~/Code/s $argv
|
||||||
|
end
|
||||||
|
|
||||||
|
# Go to the directory where my personal codes are stored
|
||||||
|
function .p --wraps='cd ~/Code/ivuorinen' --description 'cd ~/Code/ivuorinen'
|
||||||
|
cd ~/Code/ivuorinen $argv
|
||||||
|
end
|
||||||
|
|
||||||
|
# shortcut to commit with a message
|
||||||
|
function commit --wraps='git commit -a -m "chore: automated commit"' --description 'commit shortcut'
|
||||||
|
set -l commitMessage $argv
|
||||||
|
git add .
|
||||||
|
|
||||||
|
if test -z "$commitMessage"
|
||||||
|
if type -q aicommits
|
||||||
|
aicommits --type conventional
|
||||||
|
else
|
||||||
|
git commit -a -m "chore: automated commit"
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
git commit -a -m "$commitMessage"
|
||||||
|
end
|
||||||
|
|
||||||
|
function configure_tide --description 'Configure tide with the lean style and my preferences'
|
||||||
|
tide configure \
|
||||||
|
--auto \
|
||||||
|
--style=Lean \
|
||||||
|
--prompt_colors='True color' \
|
||||||
|
--show_time=No \
|
||||||
|
--lean_prompt_height='Two lines' \
|
||||||
|
--prompt_connection=Disconnected \
|
||||||
|
--prompt_spacing=Sparse \
|
||||||
|
--icons='Many icons' \
|
||||||
|
--transient=Yes
|
||||||
|
end
|
||||||
|
|
||||||
|
# Abbreviations for git
|
||||||
|
abbr --add gau git add -u
|
||||||
|
abbr --add gaa git add -A
|
||||||
|
abbr --add gcv git commit -v
|
||||||
|
|
||||||
|
# Abbreviations for composer
|
||||||
|
abbr --add c composer
|
||||||
|
abbr --add cu composer update
|
||||||
|
abbr --add ci composer install
|
||||||
|
|
||||||
|
# Abbreviations for php artisan
|
||||||
|
abbr --add .pa php artisan
|
||||||
|
abbr --add .paf php artisan fresh
|
||||||
|
abbr --add .pam php artisan migrate
|
||||||
|
abbr --add .pams php artisan migrate --seed
|
||||||
|
abbr --add .pat php artisan test
|
||||||
|
|
||||||
|
# Abbreviations for npm
|
||||||
|
abbr --add .n npm
|
||||||
|
abbr --add .nt npm test --if-present
|
||||||
|
abbr --add .nb npm run build --if-present
|
||||||
|
abbr --add .ns npm run start --if-present
|
||||||
125
config/fish/completions/aqua.fish
Normal file
125
config/fish/completions/aqua.fish
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
# aqua fish shell completion
|
||||||
|
|
||||||
|
function __fish_aqua_no_subcommand --description 'Test if there has been any subcommand yet'
|
||||||
|
for i in (commandline -opc)
|
||||||
|
if contains -- $i init install i generate g update-aqua upa update-checksum upc update up completion bash zsh fish help h help h which info remove rm vacuum cp policy allow deny init init-policy exec list generate-registry gr version root-dir help h
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l log-level -r -d 'log level'
|
||||||
|
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l config -s c -r -d 'configuration file path'
|
||||||
|
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l disable-cosign -d 'Disable Cosign verification'
|
||||||
|
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l disable-slsa -d 'Disable SLSA verification'
|
||||||
|
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l disable-github-artifact-attestation -d 'Disable GitHub Artifact Attestations verification'
|
||||||
|
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l trace -r -d 'trace output file path'
|
||||||
|
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l cpu-profile -r -d 'cpu profile output file path'
|
||||||
|
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l help -s h -d 'show help'
|
||||||
|
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l version -s v -d 'print the version'
|
||||||
|
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l help -s h -d 'show help'
|
||||||
|
complete -c aqua -n '__fish_aqua_no_subcommand' -f -l version -s v -d 'print the version'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'init' -d 'Create a configuration file if it doesn\'t exist'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l use-import-dir -s u -d 'Use import_dir'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l import-dir -s i -r -d 'import_dir'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l create-dir -s d -d 'Create a directory named aqua and create aqua.yaml in it'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'install i' -d 'Install tools'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l only-link -s l -d 'create links but skip downloading packages'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l test -d 'This flag was deprecated and had no meaning from aqua v2.0.0. This flag will be removed in aqua v3.0.0. https://github.com/aquaproj/aqua/issues/1691'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l all -s a -d 'install all aqua configuration packages'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l tags -s t -r -d 'filter installed packages with tags'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from install i' -f -l exclude-tags -r -d 'exclude installed packages with tags'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'generate g' -d 'Search packages in registries and output the configuration interactively'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l f -r -d 'the file path of packages list. When the value is "-", the list is passed from the standard input'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l i -d 'Insert packages to configuration file'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l pin -d 'Pin version'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l g -d 'Insert packages in a global configuration file'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l detail -s d -d 'Output additional fields such as description and link'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l o -r -d 'inserted file'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l select-version -s s -d 'Select the installed version interactively. Default to display 30 versions, use --limit/-l to change it.'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate g' -f -l limit -s l -r -d 'The maximum number of versions. Non-positive number refers to no limit.'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from update-aqua upa' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'update-aqua upa' -d 'Update aqua'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from update-checksum upc' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'update-checksum upc' -d 'Create or Update aqua-checksums.json'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from update-checksum upc' -f -l all -s a -d 'Create or Update all aqua-checksums.json including global configuration'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from update-checksum upc' -f -l deep -d 'This flag was deprecated and had no meaning from aqua v2.0.0. This flag will be removed in aqua v3.0.0. https://github.com/aquaproj/aqua/issues/1769'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from update-checksum upc' -f -l prune -d 'Remove unused checksums'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'update up' -d 'Update registries and packages'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l i -d 'Select packages with fuzzy finder'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l select-version -s s -d 'Select the version with fuzzy finder. Default to display 30 versions, use --limit/-l to change it.'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l only-registry -s r -d 'Update only registries'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l only-package -s p -d 'Update only packages'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l limit -s l -r -d 'The maximum number of versions. Non-positive number refers to no limit.'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l tags -s t -r -d 'filter installed packages with tags'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from update up' -f -l exclude-tags -r -d 'exclude installed packages with tags'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from completion' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'completion' -d 'Output shell completion script for bash, zsh, or fish'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from completion' -f -l help -s h -d 'show help'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from bash' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a 'bash' -d 'Output shell completion script for bash'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from zsh' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a 'zsh' -d 'Output shell completion script for zsh'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from fish' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a 'fish' -d 'Output shell completion script for fish'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from fish' -f -l help -s h -d 'show help'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from help h' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_seen_subcommand_from fish' -a 'help h' -d 'Shows a list of commands or help for one command'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from help h' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_seen_subcommand_from completion' -a 'help h' -d 'Shows a list of commands or help for one command'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from which' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'which' -d 'Output the absolute file path of the given command'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from which' -f -l version -s v -d 'Output the given package version'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from info' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'info' -d 'Show information'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from remove rm' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'remove rm' -d 'Uninstall packages'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from remove rm' -f -l all -s a -d 'uninstall all packages'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from remove rm' -f -l mode -s m -r -d 'Removed target modes. l: link, p: package'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from remove rm' -f -l i -d 'Select packages with a Fuzzy Finder'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from vacuum' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'vacuum' -d 'Remove unused installed packages'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from vacuum' -f -l init -d 'Create timestamp files.'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from vacuum' -f -l days -s d -r -d 'Expiration days'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'cp' -d 'Copy executable files in a directory'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l o -r -d 'destination directory'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l all -s a -d 'install all aqua configuration packages'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l tags -s t -r -d 'filter installed packages with tags'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from cp' -f -l exclude-tags -r -d 'exclude installed packages with tags'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from policy' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'policy' -d 'Manage Policy'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from allow' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_seen_subcommand_from policy' -a 'allow' -d 'Allow a policy file'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from deny' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_seen_subcommand_from policy' -a 'deny' -d 'Deny a policy file'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from init' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_seen_subcommand_from policy' -a 'init' -d 'Create a policy file if it doesn\'t exist'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from init-policy' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'init-policy' -d '[Deprecated] Create a policy file if it doesn\'t exist'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from exec' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'exec' -d 'Execute tool'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from list' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'list' -d 'List packages in Registries'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from list' -f -l installed -s i -d 'List installed packages'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from list' -f -l all -s a -d 'List global configuration packages too'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'generate-registry gr' -d 'Generate a registry\'s package configuration'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l out-testdata -r -d 'A file path where the testdata is outputted'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l cmd -r -d 'A list of commands joined with commas \',\''
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l generate-config -s c -r -d 'A configuration file path'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l limit -s l -r -d 'the maximum number of versions'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l deep -d 'This flag was deprecated and had no meaning from aqua v2.15.0. This flag will be removed in aqua v3.0.0. https://github.com/aquaproj/aqua/issues/2351'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from generate-registry gr' -f -l init -d 'Generate a configuration file'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from version' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'version' -d 'Show version'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from root-dir' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'root-dir' -d 'Output the aqua root directory (AQUA_ROOT_DIR)'
|
||||||
|
complete -c aqua -n '__fish_seen_subcommand_from help h' -f -l help -s h -d 'show help'
|
||||||
|
complete -r -c aqua -n '__fish_aqua_no_subcommand' -a 'help h' -d 'Shows a list of commands or help for one command'
|
||||||
|
|
||||||
235
config/fish/completions/docker.fish
Executable file
235
config/fish/completions/docker.fish
Executable file
@@ -0,0 +1,235 @@
|
|||||||
|
# fish completion for docker -*- shell-script -*-
|
||||||
|
|
||||||
|
function __docker_debug
|
||||||
|
set -l file "$BASH_COMP_DEBUG_FILE"
|
||||||
|
if test -n "$file"
|
||||||
|
echo "$argv" >> $file
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __docker_perform_completion
|
||||||
|
__docker_debug "Starting __docker_perform_completion"
|
||||||
|
|
||||||
|
# Extract all args except the last one
|
||||||
|
set -l args (commandline -opc)
|
||||||
|
# Extract the last arg and escape it in case it is a space
|
||||||
|
set -l lastArg (string escape -- (commandline -ct))
|
||||||
|
|
||||||
|
__docker_debug "args: $args"
|
||||||
|
__docker_debug "last arg: $lastArg"
|
||||||
|
|
||||||
|
# Disable ActiveHelp which is not supported for fish shell
|
||||||
|
set -l requestComp "DOCKER_ACTIVE_HELP=0 $args[1] __complete $args[2..-1] $lastArg"
|
||||||
|
|
||||||
|
__docker_debug "Calling $requestComp"
|
||||||
|
set -l results (eval $requestComp 2> /dev/null)
|
||||||
|
|
||||||
|
# Some programs may output extra empty lines after the directive.
|
||||||
|
# Let's ignore them or else it will break completion.
|
||||||
|
# Ref: https://github.com/spf13/cobra/issues/1279
|
||||||
|
for line in $results[-1..1]
|
||||||
|
if test (string trim -- $line) = ""
|
||||||
|
# Found an empty line, remove it
|
||||||
|
set results $results[1..-2]
|
||||||
|
else
|
||||||
|
# Found non-empty line, we have our proper output
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l comps $results[1..-2]
|
||||||
|
set -l directiveLine $results[-1]
|
||||||
|
|
||||||
|
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
|
||||||
|
# completions must be prefixed with the flag
|
||||||
|
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
|
||||||
|
|
||||||
|
__docker_debug "Comps: $comps"
|
||||||
|
__docker_debug "DirectiveLine: $directiveLine"
|
||||||
|
__docker_debug "flagPrefix: $flagPrefix"
|
||||||
|
|
||||||
|
for comp in $comps
|
||||||
|
printf "%s%s\n" "$flagPrefix" "$comp"
|
||||||
|
end
|
||||||
|
|
||||||
|
printf "%s\n" "$directiveLine"
|
||||||
|
end
|
||||||
|
|
||||||
|
# this function limits calls to __docker_perform_completion, by caching the result behind $__docker_perform_completion_once_result
|
||||||
|
function __docker_perform_completion_once
|
||||||
|
__docker_debug "Starting __docker_perform_completion_once"
|
||||||
|
|
||||||
|
if test -n "$__docker_perform_completion_once_result"
|
||||||
|
__docker_debug "Seems like a valid result already exists, skipping __docker_perform_completion"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
set --global __docker_perform_completion_once_result (__docker_perform_completion)
|
||||||
|
if test -z "$__docker_perform_completion_once_result"
|
||||||
|
__docker_debug "No completions, probably due to a failure"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
__docker_debug "Performed completions and set __docker_perform_completion_once_result"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# this function is used to clear the $__docker_perform_completion_once_result variable after completions are run
|
||||||
|
function __docker_clear_perform_completion_once_result
|
||||||
|
__docker_debug ""
|
||||||
|
__docker_debug "========= clearing previously set __docker_perform_completion_once_result variable =========="
|
||||||
|
set --erase __docker_perform_completion_once_result
|
||||||
|
__docker_debug "Successfully erased the variable __docker_perform_completion_once_result"
|
||||||
|
end
|
||||||
|
|
||||||
|
function __docker_requires_order_preservation
|
||||||
|
__docker_debug ""
|
||||||
|
__docker_debug "========= checking if order preservation is required =========="
|
||||||
|
|
||||||
|
__docker_perform_completion_once
|
||||||
|
if test -z "$__docker_perform_completion_once_result"
|
||||||
|
__docker_debug "Error determining if order preservation is required"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l directive (string sub --start 2 $__docker_perform_completion_once_result[-1])
|
||||||
|
__docker_debug "Directive is: $directive"
|
||||||
|
|
||||||
|
set -l shellCompDirectiveKeepOrder 32
|
||||||
|
set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) % 2)
|
||||||
|
__docker_debug "Keeporder is: $keeporder"
|
||||||
|
|
||||||
|
if test $keeporder -ne 0
|
||||||
|
__docker_debug "This does require order preservation"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
__docker_debug "This doesn't require order preservation"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# This function does two things:
|
||||||
|
# - Obtain the completions and store them in the global __docker_comp_results
|
||||||
|
# - Return false if file completion should be performed
|
||||||
|
function __docker_prepare_completions
|
||||||
|
__docker_debug ""
|
||||||
|
__docker_debug "========= starting completion logic =========="
|
||||||
|
|
||||||
|
# Start fresh
|
||||||
|
set --erase __docker_comp_results
|
||||||
|
|
||||||
|
__docker_perform_completion_once
|
||||||
|
__docker_debug "Completion results: $__docker_perform_completion_once_result"
|
||||||
|
|
||||||
|
if test -z "$__docker_perform_completion_once_result"
|
||||||
|
__docker_debug "No completion, probably due to a failure"
|
||||||
|
# Might as well do file completion, in case it helps
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l directive (string sub --start 2 $__docker_perform_completion_once_result[-1])
|
||||||
|
set --global __docker_comp_results $__docker_perform_completion_once_result[1..-2]
|
||||||
|
|
||||||
|
__docker_debug "Completions are: $__docker_comp_results"
|
||||||
|
__docker_debug "Directive is: $directive"
|
||||||
|
|
||||||
|
set -l shellCompDirectiveError 1
|
||||||
|
set -l shellCompDirectiveNoSpace 2
|
||||||
|
set -l shellCompDirectiveNoFileComp 4
|
||||||
|
set -l shellCompDirectiveFilterFileExt 8
|
||||||
|
set -l shellCompDirectiveFilterDirs 16
|
||||||
|
|
||||||
|
if test -z "$directive"
|
||||||
|
set directive 0
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
|
||||||
|
if test $compErr -eq 1
|
||||||
|
__docker_debug "Received error directive: aborting."
|
||||||
|
# Might as well do file completion, in case it helps
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
|
||||||
|
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
|
||||||
|
if test $filefilter -eq 1; or test $dirfilter -eq 1
|
||||||
|
__docker_debug "File extension filtering or directory filtering not supported"
|
||||||
|
# Do full file completion instead
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
|
||||||
|
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
|
||||||
|
|
||||||
|
__docker_debug "nospace: $nospace, nofiles: $nofiles"
|
||||||
|
|
||||||
|
# If we want to prevent a space, or if file completion is NOT disabled,
|
||||||
|
# we need to count the number of valid completions.
|
||||||
|
# To do so, we will filter on prefix as the completions we have received
|
||||||
|
# may not already be filtered so as to allow fish to match on different
|
||||||
|
# criteria than the prefix.
|
||||||
|
if test $nospace -ne 0; or test $nofiles -eq 0
|
||||||
|
set -l prefix (commandline -t | string escape --style=regex)
|
||||||
|
__docker_debug "prefix: $prefix"
|
||||||
|
|
||||||
|
set -l completions (string match -r -- "^$prefix.*" $__docker_comp_results)
|
||||||
|
set --global __docker_comp_results $completions
|
||||||
|
__docker_debug "Filtered completions are: $__docker_comp_results"
|
||||||
|
|
||||||
|
# Important not to quote the variable for count to work
|
||||||
|
set -l numComps (count $__docker_comp_results)
|
||||||
|
__docker_debug "numComps: $numComps"
|
||||||
|
|
||||||
|
if test $numComps -eq 1; and test $nospace -ne 0
|
||||||
|
# We must first split on \t to get rid of the descriptions to be
|
||||||
|
# able to check what the actual completion will be.
|
||||||
|
# We don't need descriptions anyway since there is only a single
|
||||||
|
# real completion which the shell will expand immediately.
|
||||||
|
set -l split (string split --max 1 \t $__docker_comp_results[1])
|
||||||
|
|
||||||
|
# Fish won't add a space if the completion ends with any
|
||||||
|
# of the following characters: @=/:.,
|
||||||
|
set -l lastChar (string sub -s -1 -- $split)
|
||||||
|
if not string match -r -q "[@=/:.,]" -- "$lastChar"
|
||||||
|
# In other cases, to support the "nospace" directive we trick the shell
|
||||||
|
# by outputting an extra, longer completion.
|
||||||
|
__docker_debug "Adding second completion to perform nospace directive"
|
||||||
|
set --global __docker_comp_results $split[1] $split[1].
|
||||||
|
__docker_debug "Completions are now: $__docker_comp_results"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if test $numComps -eq 0; and test $nofiles -eq 0
|
||||||
|
# To be consistent with bash and zsh, we only trigger file
|
||||||
|
# completion when there are no other completions
|
||||||
|
__docker_debug "Requesting file completion"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
|
||||||
|
# so we can properly delete any completions provided by another script.
|
||||||
|
# Only do this if the program can be found, or else fish may print some errors; besides,
|
||||||
|
# the existing completions will only be loaded if the program can be found.
|
||||||
|
if type -q "docker"
|
||||||
|
# The space after the program name is essential to trigger completion for the program
|
||||||
|
# and not completion of the program name itself.
|
||||||
|
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
|
||||||
|
complete --do-complete "docker " > /dev/null 2>&1
|
||||||
|
end
|
||||||
|
|
||||||
|
# Remove any pre-existing completions for the program since we will be handling all of them.
|
||||||
|
complete -c docker -e
|
||||||
|
|
||||||
|
# this will get called after the two calls below and clear the $__docker_perform_completion_once_result global
|
||||||
|
complete -c docker -n '__docker_clear_perform_completion_once_result'
|
||||||
|
# The call to __docker_prepare_completions will setup __docker_comp_results
|
||||||
|
# which provides the program's completion choices.
|
||||||
|
# If this doesn't require order preservation, we don't use the -k flag
|
||||||
|
complete -c docker -n 'not __docker_requires_order_preservation && __docker_prepare_completions' -f -a '$__docker_comp_results'
|
||||||
|
# otherwise we use the -k flag
|
||||||
|
complete -k -c docker -n '__docker_requires_order_preservation && __docker_prepare_completions' -f -a '$__docker_comp_results'
|
||||||
176
config/fish/completions/git-profile.fish
Normal file
176
config/fish/completions/git-profile.fish
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
# fish completion for git-profile -*- shell-script -*-
|
||||||
|
|
||||||
|
function __git_profile_debug
|
||||||
|
set -l file "$BASH_COMP_DEBUG_FILE"
|
||||||
|
if test -n "$file"
|
||||||
|
echo "$argv" >> $file
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __git_profile_perform_completion
|
||||||
|
__git_profile_debug "Starting __git_profile_perform_completion"
|
||||||
|
|
||||||
|
# Extract all args except the last one
|
||||||
|
set -l args (commandline -opc)
|
||||||
|
# Extract the last arg and escape it in case it is a space
|
||||||
|
set -l lastArg (string escape -- (commandline -ct))
|
||||||
|
|
||||||
|
__git_profile_debug "args: $args"
|
||||||
|
__git_profile_debug "last arg: $lastArg"
|
||||||
|
|
||||||
|
set -l requestComp "$args[1] __complete $args[2..-1] $lastArg"
|
||||||
|
|
||||||
|
__git_profile_debug "Calling $requestComp"
|
||||||
|
set -l results (eval $requestComp 2> /dev/null)
|
||||||
|
|
||||||
|
# Some programs may output extra empty lines after the directive.
|
||||||
|
# Let's ignore them or else it will break completion.
|
||||||
|
# Ref: https://github.com/spf13/cobra/issues/1279
|
||||||
|
for line in $results[-1..1]
|
||||||
|
if test (string trim -- $line) = ""
|
||||||
|
# Found an empty line, remove it
|
||||||
|
set results $results[1..-2]
|
||||||
|
else
|
||||||
|
# Found non-empty line, we have our proper output
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l comps $results[1..-2]
|
||||||
|
set -l directiveLine $results[-1]
|
||||||
|
|
||||||
|
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
|
||||||
|
# completions must be prefixed with the flag
|
||||||
|
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
|
||||||
|
|
||||||
|
__git_profile_debug "Comps: $comps"
|
||||||
|
__git_profile_debug "DirectiveLine: $directiveLine"
|
||||||
|
__git_profile_debug "flagPrefix: $flagPrefix"
|
||||||
|
|
||||||
|
for comp in $comps
|
||||||
|
printf "%s%s\n" "$flagPrefix" "$comp"
|
||||||
|
end
|
||||||
|
|
||||||
|
printf "%s\n" "$directiveLine"
|
||||||
|
end
|
||||||
|
|
||||||
|
# This function does two things:
|
||||||
|
# - Obtain the completions and store them in the global __git_profile_comp_results
|
||||||
|
# - Return false if file completion should be performed
|
||||||
|
function __git_profile_prepare_completions
|
||||||
|
__git_profile_debug ""
|
||||||
|
__git_profile_debug "========= starting completion logic =========="
|
||||||
|
|
||||||
|
# Start fresh
|
||||||
|
set --erase __git_profile_comp_results
|
||||||
|
|
||||||
|
set -l results (__git_profile_perform_completion)
|
||||||
|
__git_profile_debug "Completion results: $results"
|
||||||
|
|
||||||
|
if test -z "$results"
|
||||||
|
__git_profile_debug "No completion, probably due to a failure"
|
||||||
|
# Might as well do file completion, in case it helps
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l directive (string sub --start 2 $results[-1])
|
||||||
|
set --global __git_profile_comp_results $results[1..-2]
|
||||||
|
|
||||||
|
__git_profile_debug "Completions are: $__git_profile_comp_results"
|
||||||
|
__git_profile_debug "Directive is: $directive"
|
||||||
|
|
||||||
|
set -l shellCompDirectiveError 1
|
||||||
|
set -l shellCompDirectiveNoSpace 2
|
||||||
|
set -l shellCompDirectiveNoFileComp 4
|
||||||
|
set -l shellCompDirectiveFilterFileExt 8
|
||||||
|
set -l shellCompDirectiveFilterDirs 16
|
||||||
|
|
||||||
|
if test -z "$directive"
|
||||||
|
set directive 0
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
|
||||||
|
if test $compErr -eq 1
|
||||||
|
__git_profile_debug "Received error directive: aborting."
|
||||||
|
# Might as well do file completion, in case it helps
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
|
||||||
|
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
|
||||||
|
if test $filefilter -eq 1; or test $dirfilter -eq 1
|
||||||
|
__git_profile_debug "File extension filtering or directory filtering not supported"
|
||||||
|
# Do full file completion instead
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
|
||||||
|
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
|
||||||
|
|
||||||
|
__git_profile_debug "nospace: $nospace, nofiles: $nofiles"
|
||||||
|
|
||||||
|
# If we want to prevent a space, or if file completion is NOT disabled,
|
||||||
|
# we need to count the number of valid completions.
|
||||||
|
# To do so, we will filter on prefix as the completions we have received
|
||||||
|
# may not already be filtered so as to allow fish to match on different
|
||||||
|
# criteria than the prefix.
|
||||||
|
if test $nospace -ne 0; or test $nofiles -eq 0
|
||||||
|
set -l prefix (commandline -t | string escape --style=regex)
|
||||||
|
__git_profile_debug "prefix: $prefix"
|
||||||
|
|
||||||
|
set -l completions (string match -r -- "^$prefix.*" $__git_profile_comp_results)
|
||||||
|
set --global __git_profile_comp_results $completions
|
||||||
|
__git_profile_debug "Filtered completions are: $__git_profile_comp_results"
|
||||||
|
|
||||||
|
# Important not to quote the variable for count to work
|
||||||
|
set -l numComps (count $__git_profile_comp_results)
|
||||||
|
__git_profile_debug "numComps: $numComps"
|
||||||
|
|
||||||
|
if test $numComps -eq 1; and test $nospace -ne 0
|
||||||
|
# We must first split on \t to get rid of the descriptions to be
|
||||||
|
# able to check what the actual completion will be.
|
||||||
|
# We don't need descriptions anyway since there is only a single
|
||||||
|
# real completion which the shell will expand immediately.
|
||||||
|
set -l split (string split --max 1 \t $__git_profile_comp_results[1])
|
||||||
|
|
||||||
|
# Fish won't add a space if the completion ends with any
|
||||||
|
# of the following characters: @=/:.,
|
||||||
|
set -l lastChar (string sub -s -1 -- $split)
|
||||||
|
if not string match -r -q "[@=/:.,]" -- "$lastChar"
|
||||||
|
# In other cases, to support the "nospace" directive we trick the shell
|
||||||
|
# by outputting an extra, longer completion.
|
||||||
|
__git_profile_debug "Adding second completion to perform nospace directive"
|
||||||
|
set --global __git_profile_comp_results $split[1] $split[1].
|
||||||
|
__git_profile_debug "Completions are now: $__git_profile_comp_results"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if test $numComps -eq 0; and test $nofiles -eq 0
|
||||||
|
# To be consistent with bash and zsh, we only trigger file
|
||||||
|
# completion when there are no other completions
|
||||||
|
__git_profile_debug "Requesting file completion"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
|
||||||
|
# so we can properly delete any completions provided by another script.
|
||||||
|
# Only do this if the program can be found, or else fish may print some errors; besides,
|
||||||
|
# the existing completions will only be loaded if the program can be found.
|
||||||
|
if type -q "git-profile"
|
||||||
|
# The space after the program name is essential to trigger completion for the program
|
||||||
|
# and not completion of the program name itself.
|
||||||
|
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
|
||||||
|
complete --do-complete "git-profile " > /dev/null 2>&1
|
||||||
|
end
|
||||||
|
|
||||||
|
# Remove any pre-existing completions for the program since we will be handling all of them.
|
||||||
|
complete -c git-profile -e
|
||||||
|
|
||||||
|
# The call to __git_profile_prepare_completions will setup __git_profile_comp_results
|
||||||
|
# which provides the program's completion choices.
|
||||||
|
complete -c git-profile -n '__git_profile_prepare_completions' -f -a '$__git_profile_comp_results'
|
||||||
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
complete --command nvm --exclusive
|
|
||||||
complete --command nvm --exclusive --long version --description "Print version"
|
|
||||||
complete --command nvm --exclusive --long help --description "Print help"
|
|
||||||
complete --command nvm --long silent --description "Suppress standard output"
|
|
||||||
|
|
||||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments install --description "Download and activate the specified Node version"
|
|
||||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments use --description "Activate the specified Node version in the current shell"
|
|
||||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list --description "List installed Node versions"
|
|
||||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list-remote --description "List available Node versions to install"
|
|
||||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments current --description "Print the currently-active Node version"
|
|
||||||
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from install" --arguments "(
|
|
||||||
test -e $nvm_data && string split ' ' <$nvm_data/.index
|
|
||||||
)"
|
|
||||||
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use" --arguments "(_nvm_list | string split ' ')"
|
|
||||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments uninstall --description "Uninstall the specified Node version"
|
|
||||||
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from uninstall" --arguments "(
|
|
||||||
_nvm_list | string split ' ' | string replace system ''
|
|
||||||
)"
|
|
||||||
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use uninstall" --arguments "(
|
|
||||||
set --query nvm_default_version && echo default
|
|
||||||
)"
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
set --query XDG_DATA_HOME || set --local XDG_DATA_HOME ~/.local/share
|
|
||||||
set --query nvm_mirror || set --global nvm_mirror https://nodejs.org/dist
|
|
||||||
set --query nvm_data || set --global nvm_data $XDG_DATA_HOME/nvm
|
|
||||||
|
|
||||||
function _nvm_install --on-event nvm_install
|
|
||||||
test ! -d $nvm_data && command mkdir -p $nvm_data
|
|
||||||
echo "Downloading the Node distribution index..." 2>/dev/null
|
|
||||||
_nvm_index_update
|
|
||||||
end
|
|
||||||
|
|
||||||
function _nvm_update --on-event nvm_update
|
|
||||||
set --query --universal nvm_data && set --erase --universal nvm_data
|
|
||||||
set --query --universal nvm_mirror && set --erase --universal nvm_mirror
|
|
||||||
set --query nvm_mirror || set --global nvm_mirror https://nodejs.org/dist
|
|
||||||
end
|
|
||||||
|
|
||||||
function _nvm_uninstall --on-event nvm_uninstall
|
|
||||||
command rm -rf $nvm_data
|
|
||||||
|
|
||||||
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
|
|
||||||
|
|
||||||
set --names | string replace --filter --regex -- "^nvm" "set --erase nvm" | source
|
|
||||||
functions --erase (functions --all | string match --entire --regex -- "^_nvm_")
|
|
||||||
end
|
|
||||||
|
|
||||||
if status is-interactive && set --query nvm_default_version && ! set --query nvm_current_version
|
|
||||||
nvm use --silent $nvm_default_version
|
|
||||||
end
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
function ___paths_plugin_set_colors
|
|
||||||
if not set -q ___paths_plugin_colors
|
|
||||||
set -Ux ___paths_plugin_colors 27e6ff 29e0ff 5cd8ff 77d0ff 8ac8ff 9cbfff afb5ff c5a7ff d99bfe ea8feb f684d5 fe7abd ff73a3 ff708a fa7070 ff708a ff73a3 fe7abd f684d5 ea8feb d99bfe c5a7ff afb5ff 9cbfff 8ac8ff 77d0ff 5cd8ff 29e0ff
|
|
||||||
end
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
|
|
||||||
function _paths_uninstall --on-event paths_uninstall
|
|
||||||
for i in ___paths_plugin_wrap_color ___paths_plugin_output ___paths_plugin_handle_found_item ___paths_plugin_handle_source ___paths_plugin_cycle_color
|
|
||||||
functions -e $i
|
|
||||||
end
|
|
||||||
set -e ___paths_plugin_colors
|
|
||||||
set -e ___paths_plugin_current_color
|
|
||||||
end
|
|
||||||
|
|
||||||
function _paths_install --on-event _paths_install
|
|
||||||
___paths_plugin_set_colors
|
|
||||||
end
|
|
||||||
|
|
||||||
function _paths_update --on-event paths_update
|
|
||||||
___paths_plugin_set_colors
|
|
||||||
end
|
|
||||||
@@ -1,7 +1,36 @@
|
|||||||
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
|
# │ fish/config.fish │
|
||||||
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
|
test -e "$HOME/.config/fish/alias.fish" &&
|
||||||
|
source "$HOME/.config/fish/alias.fish"
|
||||||
|
|
||||||
|
test -e "$HOME/.config/fish/exports.fish" &&
|
||||||
|
source "$HOME/.config/fish/exports.fish"
|
||||||
|
|
||||||
|
test -e "$HOME/.dotfiles/config/fzf/key-bindings.fish" &&
|
||||||
|
source "$HOME/.dotfiles/config/fzf/key-bindings.fish"
|
||||||
|
|
||||||
if status is-interactive
|
if status is-interactive
|
||||||
# Commands to run in interactive sessions can go here
|
# Commands to run in interactive shell
|
||||||
fish_add_path $HOME/.cargo/bin
|
|
||||||
fish_add_path $HOME/.local/bin
|
# 1Password plugins if op command is available
|
||||||
fish_add_path $HOME/.local/share/nvim/mason/bin
|
type -q op; and test -e "$HOME/.config/op/plugins.sh" &&
|
||||||
fish_add_path $HOME/.local/state/composer/vendor/bin
|
source "$HOME/.config/op/plugins.sh"
|
||||||
|
|
||||||
|
# version manager initializers
|
||||||
|
type -q rbenv; and source (rbenv init -|psub)
|
||||||
|
type -q pyenv; and source (pyenv init -|psub)
|
||||||
|
type -q pyenv; and source (pyenv virtualenv-init -|psub)
|
||||||
|
type -q goenv; and source (goenv init -|psub)
|
||||||
|
# type -q fnm; and fnm env --use-on-cd --shell fish | source
|
||||||
|
type -q load_nvm; and load_nvm > /dev/stderr
|
||||||
|
|
||||||
|
# Start tmux if not already running and not in SSH
|
||||||
|
open-tmux # defined in functions/open-tmux.fish
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Added by LM Studio CLI (lms)
|
||||||
|
set -gx PATH $PATH $HOME/.lmstudio/bin
|
||||||
|
|
||||||
|
# vim: ft=fish ts=4 sw=4 et:
|
||||||
|
|||||||
187
config/fish/exports.fish
Normal file
187
config/fish/exports.fish
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
|
# XDG Base Directory Specification
|
||||||
|
set -q XDG_CONFIG_HOME; or set -x XDG_CONFIG_HOME "$HOME/.config"
|
||||||
|
set -q XDG_DATA_HOME; or set -x XDG_DATA_HOME "$HOME/.local/share"
|
||||||
|
set -q XDG_CACHE_HOME; or set -x XDG_CACHE_HOME "$HOME/.cache"
|
||||||
|
set -q XDG_STATE_HOME; or set -x XDG_STATE_HOME "$HOME/.local/state"
|
||||||
|
set -q XDG_BIN_HOME; or set -x XDG_BIN_HOME "$HOME/.local/bin"
|
||||||
|
set -q XDG_RUNTIME_DIR; or set -x XDG_RUNTIME_DIR "$HOME/.local/run"
|
||||||
|
|
||||||
|
# Dotfiles directory
|
||||||
|
set -q DOTFILES; or set -x DOTFILES "$HOME/.dotfiles"
|
||||||
|
|
||||||
|
# Editor settings
|
||||||
|
set -q EDITOR; or set -x EDITOR nvim
|
||||||
|
set -q VISUAL; or set -x VISUAL code
|
||||||
|
set -q HOSTNAME; or set -x HOSTNAME (hostname -s)
|
||||||
|
|
||||||
|
# Add local bin to path
|
||||||
|
fish_add_path "$XDG_BIN_HOME"
|
||||||
|
|
||||||
|
# Add cargo bin to path
|
||||||
|
fish_add_path "$XDG_SHARE_HOME/cargo/bin"
|
||||||
|
|
||||||
|
# NPM/NVM configuration
|
||||||
|
set -q NVM_DIR; or set -x NVM_DIR "$XDG_DATA_HOME/nvm"
|
||||||
|
fish_add_path "$NVM_DIR/bin"
|
||||||
|
fish_add_path "$XDG_CONFIG_HOME/nvm"
|
||||||
|
|
||||||
|
# Yarn configuration
|
||||||
|
set -q YARN_GLOBAL_FOLDER; or set -x YARN_GLOBAL_FOLDER "$XDG_DATA_HOME/yarn"
|
||||||
|
fish_add_path "$YARN_GLOBAL_FOLDER/bin"
|
||||||
|
|
||||||
|
# Mason configuration
|
||||||
|
set -q MASON_HOME; or set -x MASON_HOME "$XDG_DATA_HOME/nvim/mason"
|
||||||
|
fish_add_path "$MASON_HOME/bin"
|
||||||
|
|
||||||
|
# Set Neovim environment variables
|
||||||
|
test -z "$NVIM_STATE" && set -x NVIM_STATE "$XDG_STATE_HOME/nvim"
|
||||||
|
test -z "$NVIM_CONFIG_HOME" && set -x NVIM_CONFIG_HOME "$XDG_CONFIG_HOME/nvim"
|
||||||
|
test -z "$NVIM_DATA_HOME" && set -x NVIM_DATA_HOME "$XDG_DATA_HOME/nvim"
|
||||||
|
test -z "$NVIM_CACHE_HOME" && set -x NVIM_CACHE_HOME "$XDG_CACHE_HOME/nvim"
|
||||||
|
test -z "$NVIM_LOG_PATH" && set -x NVIM_LOG_PATH "$NVIM_STATE/log"
|
||||||
|
test -z "$NVIM_SESSION_PATH" && set -x NVIM_SESSION_PATH "$NVIM_STATE/session"
|
||||||
|
test -z "$NVIM_SHADA_PATH" && set -x NVIM_SHADA_PATH "$NVIM_STATE/shada"
|
||||||
|
test -z "$NVIM_UNDO_PATH" && set -x NVIM_UNDO_PATH "$NVIM_STATE/undo"
|
||||||
|
|
||||||
|
# Ansible configuration
|
||||||
|
set -q ANSIBLE_HOME; or set -x ANSIBLE_HOME "$XDG_CONFIG_HOME/ansible"
|
||||||
|
set -q ANSIBLE_CONFIG; or set -x ANSIBLE_CONFIG "$ANSIBLE_HOME/ansible.cfg"
|
||||||
|
set -q ANSIBLE_GALAXY_CACHE_DIR; or set -x ANSIBLE_GALAXY_CACHE_DIR "$XDG_CACHE_HOME/ansible/galaxy_cache"
|
||||||
|
x-dc "$ANSIBLE_HOME"
|
||||||
|
x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
|
||||||
|
|
||||||
|
# AWS configuration
|
||||||
|
set -q AWS_CONFIG_FILE; or set -x AWS_CONFIG_FILE "$XDG_STATE_HOME/aws/config"
|
||||||
|
set -q AWS_SHARED_CREDENTIALS_FILE; or set -x AWS_SHARED_CREDENTIALS_FILE "$XDG_STATE_HOME/aws/credentials"
|
||||||
|
set -q AWS_SESSION_TOKEN; or set -x AWS_SESSION_TOKEN "$XDG_STATE_HOME/aws/session_token"
|
||||||
|
set -q AWS_DATA_PATH; or set -x AWS_DATA_PATH "$XDG_DATA_HOME/aws"
|
||||||
|
set -q AWS_DEFAULT_OUTPUT; or set -x AWS_DEFAULT_OUTPUT table
|
||||||
|
set -q AWS_CONFIGURE_KEYS; or set -x AWS_CONFIGURE_KEYS true
|
||||||
|
set -q AWS_CONFIGURE_SESSION; or set -x AWS_CONFIGURE_SESSION true
|
||||||
|
set -q AWS_CONFIGURE_SESSION_DURATION; or set -x AWS_CONFIGURE_SESSION_DURATION 7200
|
||||||
|
set -q AWS_CONFIGURE_SESSION_MFA; or set -x AWS_CONFIGURE_SESSION_MFA true
|
||||||
|
set -q AWS_CONFIGURE_PROFILE; or set -x AWS_CONFIGURE_PROFILE true
|
||||||
|
set -q AWS_CONFIGURE_PROMPT; or set -x AWS_CONFIGURE_PROMPT true
|
||||||
|
set -q AWS_CONFIGURE_PROMPT_DEFAULT; or set -x AWS_CONFIGURE_PROMPT_DEFAULT true
|
||||||
|
|
||||||
|
# Brew configuration
|
||||||
|
set -q HOMEBREW_NO_ANALYTICS; or set -x HOMEBREW_NO_ANALYTICS true
|
||||||
|
set -q HOMEBREW_NO_ENV_HINTS; or set -x HOMEBREW_NO_ENV_HINTS true
|
||||||
|
set -q HOMEBREW_BUNDLE_MAS_SKIP; or set -x HOMEBREW_BUNDLE_MAS_SKIP true
|
||||||
|
set -q HOMEBREW_BUNDLE_FILE; or set -x HOMEBREW_BUNDLE_FILE "$XDG_CONFIG_HOME/homebrew/Brewfile"
|
||||||
|
|
||||||
|
# Composer configuration
|
||||||
|
set -q COMPOSER_HOME; or set -x COMPOSER_HOME "$XDG_STATE_HOME/composer"
|
||||||
|
set -q COMPOSER_BIN; or set -x COMPOSER_BIN "$COMPOSER_HOME/vendor/bin"
|
||||||
|
fish_add_path "$COMPOSER_BIN"
|
||||||
|
|
||||||
|
# direnv configuration
|
||||||
|
set -q DIRENV_LOG_FORMAT; or set -x DIRENV_LOG_FORMAT ''
|
||||||
|
|
||||||
|
# Docker configuration
|
||||||
|
set -q DOCKER_CONFIG; or set -x DOCKER_CONFIG "$XDG_CONFIG_HOME/docker"
|
||||||
|
x-dc "$DOCKER_CONFIG"
|
||||||
|
set -q DOCKER_HIDE_LEGACY_COMMANDS; or set -x DOCKER_HIDE_LEGACY_COMMANDS true
|
||||||
|
set -q DOCKER_SCAN_SUGGEST; or set -x DOCKER_SCAN_SUGGEST false
|
||||||
|
|
||||||
|
# FNM / Node.js configuration
|
||||||
|
set -q FNM_DIR; or set -x FNM_DIR "$XDG_DATA_HOME/fnm"
|
||||||
|
fish_add_path "$FNM_DIR"
|
||||||
|
set -q FNM_VERSION_FILE_STRATEGY; or set -x FNM_VERSION_FILE_STRATEGY recursive
|
||||||
|
set -q FNM_USE_ON_CD; or set -x FNM_USE_ON_CD true
|
||||||
|
set -q FNM_COREPACK_ENABLED; or set -x FNM_COREPACK_ENABLED true
|
||||||
|
set -q FNM_RESOLVE_ENGINES; or set -x FNM_RESOLVE_ENGINES true
|
||||||
|
|
||||||
|
# fzf configuration
|
||||||
|
set -q FZF_BASE; or set -x FZF_BASE "$XDG_CONFIG_HOME/fzf"
|
||||||
|
set -q FZF_DEFAULT_OPTS; or set -x FZF_DEFAULT_OPTS '--height 40% --tmux bottom,40% --layout reverse --border top'
|
||||||
|
|
||||||
|
# GnuPG configuration
|
||||||
|
set -q GNUPGHOME; or set -x GNUPGHOME "$XDG_DATA_HOME/gnupg"
|
||||||
|
|
||||||
|
# Go configuration
|
||||||
|
# set -q GOPATH; or set -x GOPATH "$XDG_DATA_HOME/go"
|
||||||
|
set -q GOBIN; or set -x GOBIN "$XDG_BIN_HOME"
|
||||||
|
|
||||||
|
set -q GOENV_ROOT; or set -x GOENV_ROOT "$XDG_DATA_HOME/goenv"
|
||||||
|
set -q GOENV_RC_FILE; or set -x GOENV_RC_FILE "$XDG_CONFIG_HOME/goenv/goenvrc.fish"
|
||||||
|
|
||||||
|
# 1Password configuration
|
||||||
|
set -q OP_CACHE; or set -x OP_CACHE "$XDG_STATE_HOME/1password"
|
||||||
|
|
||||||
|
# Python configuration
|
||||||
|
set -q WORKON_HOME; or set -x WORKON_HOME "$XDG_DATA_HOME/virtualenvs"
|
||||||
|
set -q PYENV_ROOT; or set -x PYENV_ROOT "$XDG_DATA_HOME/pyenv"
|
||||||
|
fish_add_path "$PYENV_ROOT/bin"
|
||||||
|
|
||||||
|
# Poetry configuration
|
||||||
|
set -q POETRY_HOME; or set -x POETRY_HOME "$XDG_DATA_HOME/poetry"
|
||||||
|
fish_add_path "$POETRY_HOME/bin"
|
||||||
|
|
||||||
|
# Rust / cargo configuration
|
||||||
|
set -q CARGO_HOME; or set -x CARGO_HOME "$XDG_DATA_HOME/cargo"
|
||||||
|
set -q CARGO_BIN_HOME; or set -x CARGO_BIN_HOME "$XDG_BIN_HOME"
|
||||||
|
set -q RUSTUP_HOME; or set -x RUSTUP_HOME "$XDG_DATA_HOME/rustup"
|
||||||
|
set -x RUST_WITHOUT "clippy,docs,rls"
|
||||||
|
fish_add_path "$CARGO_HOME/bin"
|
||||||
|
fish_add_path "$XDG_SHARE_HOME/bob/nvim-bin"
|
||||||
|
|
||||||
|
# screen configuration
|
||||||
|
set -q SCREENRC; or set -x SCREENRC "$XDG_CONFIG_HOME/misc/screenrc"
|
||||||
|
|
||||||
|
# Sonarlint configuration
|
||||||
|
set -q SONARLINT_HOME; or set -x SONARLINT_HOME "$XDG_DATA_HOME/sonarlint"
|
||||||
|
set -q SONARLINT_BIN; or set -x SONARLINT_BIN "$XDG_BIN_HOME"
|
||||||
|
set -q SONARLINT_USER_HOME; or set -x SONARLINT_USER_HOME "$XDG_DATA_HOME/sonarlint"
|
||||||
|
|
||||||
|
# Terraform configuration
|
||||||
|
set -q TF_DATA_DIR; or set -x TF_DATA_DIR "$XDG_STATE_HOME/terraform"
|
||||||
|
set -q TF_CLI_CONFIG_FILE; or set -x TF_CLI_CONFIG_FILE "$XDG_CONFIG_HOME/terraform/terraformrc"
|
||||||
|
set -q TF_PLUGIN_CACHE_DIR; or set -x TF_PLUGIN_CACHE_DIR "$XDG_CACHE_HOME/terraform/plugin-cache"
|
||||||
|
|
||||||
|
# tmux configuration
|
||||||
|
set -q TMUX_TMPDIR; or set -x TMUX_TMPDIR "$XDG_STATE_HOME/tmux"
|
||||||
|
set -q TMUX_CONF_DIR; or set -x TMUX_CONF_DIR "$XDG_CONFIG_HOME/tmux"
|
||||||
|
set -q TMUX_PLUGINS; or set -x TMUX_PLUGINS "$TMUX_CONF_DIR/plugins"
|
||||||
|
set -q TMUX_CONF; or set -x TMUX_CONF "$TMUX_CONF_DIR/tmux.conf"
|
||||||
|
set -q TMUX_PLUGIN_MANAGER_PATH; or set -x TMUX_PLUGIN_MANAGER_PATH "$TMUX_PLUGINS"
|
||||||
|
|
||||||
|
# Source tmux theme activation script for Fish shell
|
||||||
|
if test -f "$DOTFILES/config/tmux/theme-activate.fish"
|
||||||
|
source "$DOTFILES/config/tmux/theme-activate.fish"
|
||||||
|
end
|
||||||
|
|
||||||
|
# tms configuration
|
||||||
|
set -q TMS_CONFIG_FILE; or set -x TMS_CONFIG_FILE "$XDG_CONFIG_HOME/tms/config.toml"
|
||||||
|
|
||||||
|
# wakatime configuration
|
||||||
|
set -q WAKATIME_HOME; or set -x WAKATIME_HOME "$XDG_STATE_HOME/wakatime"
|
||||||
|
x-dc "$WAKATIME_HOME"
|
||||||
|
|
||||||
|
# Miscellaneous configuration
|
||||||
|
set -q CHEAT_USE_FZF; or set -x CHEAT_USE_FZF true
|
||||||
|
set -q SQLITE_HISTORY; or set -x SQLITE_HISTORY "$XDG_CACHE_HOME/sqlite/sqlite_history"
|
||||||
|
|
||||||
|
# Source additional configuration files if they exist
|
||||||
|
if test -f "$DOTFILES/config/fish/exports-secret.fish"
|
||||||
|
source "$DOTFILES/config/fish/exports-secret.fish"
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -f "$DOTFILES/hosts/$HOSTNAME/config/fish/exports.fish"
|
||||||
|
source "$DOTFILES/hosts/$HOSTNAME/config/fish/exports.fish"
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -f "$DOTFILES/hosts/$HOSTNAME/config/fish/exports-secret.fish"
|
||||||
|
source "$DOTFILES/hosts/$HOSTNAME/config/fish/exports-secret.fish"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Configure tide prompt
|
||||||
|
set -gx tide_prompt_transient_enabled true
|
||||||
|
set -gx tide_prompt_add_newline_before true
|
||||||
|
set -gx tide_prompt_min_cols 34
|
||||||
|
set -gx tide_prompt_pad_items false
|
||||||
|
set -gx tide_left_prompt_items context pwd git node python rustc java php pulumi ruby go gcloud kubectl distrobox toolbox terraform aws nix_shell crystal elixir zig newline character
|
||||||
|
set -gx tide_right_prompt_items status jobs direnv
|
||||||
|
set -gx tide_context_hostname_parts 1
|
||||||
@@ -1,9 +1,7 @@
|
|||||||
jorgebucaran/fisher
|
jorgebucaran/fisher
|
||||||
jorgebucaran/nvm.fish
|
|
||||||
ilancosman/tide@v6
|
ilancosman/tide@v6
|
||||||
jethrokuan/z
|
jethrokuan/z
|
||||||
halostatue/fish-macos@v7
|
halostatue/fish-macos@v7
|
||||||
ehfive/fish-bash2env
|
|
||||||
jgusta/paths
|
|
||||||
danhper/fish-ssh-agent
|
danhper/fish-ssh-agent
|
||||||
halostatue/fish-brew@v3
|
halostatue/fish-brew@v3
|
||||||
|
edc/bass
|
||||||
|
|||||||
@@ -1,212 +0,0 @@
|
|||||||
# This file contains fish universal variable definitions.
|
|
||||||
# VERSION: 3.0
|
|
||||||
SETUVAR VIRTUAL_ENV_DISABLE_PROMPT:true
|
|
||||||
SETUVAR ZO_CMD:zo
|
|
||||||
SETUVAR Z_CMD:z
|
|
||||||
SETUVAR Z_DATA:/Users/ivuorinen/\x2elocal/share/z/data
|
|
||||||
SETUVAR Z_DATA_DIR:/Users/ivuorinen/\x2elocal/share/z
|
|
||||||
SETUVAR Z_EXCLUDE:\x5e/Users/ivuorinen\x24
|
|
||||||
SETUVAR --export ___paths_plugin_colors:27e6ff\x1e29e0ff\x1e5cd8ff\x1e77d0ff\x1e8ac8ff\x1e9cbfff\x1eafb5ff\x1ec5a7ff\x1ed99bfe\x1eea8feb\x1ef684d5\x1efe7abd\x1eff73a3\x1eff708a\x1efa7070\x1eff708a\x1eff73a3\x1efe7abd\x1ef684d5\x1eea8feb\x1ed99bfe\x1ec5a7ff\x1eafb5ff\x1e9cbfff\x1e8ac8ff\x1e77d0ff\x1e5cd8ff\x1e29e0ff
|
|
||||||
SETUVAR --export ___paths_plugin_current_color:4
|
|
||||||
SETUVAR __fish_initialized:3400
|
|
||||||
SETUVAR _fisher_danhper_2F_fish_2D_ssh_2D_agent_files:\x7e/\x2econfig/fish/functions/__ssh_agent_is_started\x2efish\x1e\x7e/\x2econfig/fish/functions/__ssh_agent_start\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/fish\x2dssh\x2dagent\x2efish
|
|
||||||
SETUVAR _fisher_ehfive_2F_fish_2D_bash2env_files:\x7e/\x2econfig/fish/functions/__bash2env\x2esh\x1e\x7e/\x2econfig/fish/functions/bash2env\x2efish
|
|
||||||
SETUVAR _fisher_halostatue_2F_fish_2D_brew_40_v3_files:\x7e/\x2econfig/fish/functions/has_cask\x2efish\x1e\x7e/\x2econfig/fish/functions/has_keg\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/halostatue_fish_brew\x2efish
|
|
||||||
SETUVAR _fisher_halostatue_2F_fish_2D_macos_40_v7_files:\x7e/\x2econfig/fish/functions/__macos_app_bundleid\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_app_find\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_app_frontmost\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_app_icon\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_app_quit\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_cd\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_clean\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_column\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_desktop_icons\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_hidden\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_icon\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_list\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_pushd\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_pwd\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_quarantine\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_selected\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_track\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_untrack\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_finder_update\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_airdrop\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_airport\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_brightness\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_defaults_query\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_flushdns\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_font_smoothing\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_lsclean\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_mail\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_proxy_icon\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_serialnumber\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_touchid\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_touchid_sudo\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_transparency\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_version\x2efish\x1e\x7e/\x2econfig/fish/functions/__macos_mac_vol\x2efish\x1e\x7e/\x2econfig/fish/functions/app\x2efish\x1e\x7e/\x2econfig/fish/functions/finder\x2efish\x1e\x7e/\x2econfig/fish/functions/has_app\x2efish\x1e\x7e/\x2econfig/fish/functions/mac\x2efish\x1e\x7e/\x2econfig/fish/functions/manp\x2efish\x1e\x7e/\x2econfig/fish/functions/note\x2efish\x1e\x7e/\x2econfig/fish/functions/ql\x2efish\x1e\x7e/\x2econfig/fish/functions/remind\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/halostatue_fish_macos\x2efish\x1e\x7e/\x2econfig/fish/completions/app\x2efish\x1e\x7e/\x2econfig/fish/completions/finder\x2efish\x1e\x7e/\x2econfig/fish/completions/mac\x2efish\x1e\x7e/\x2econfig/fish/completions/manp\x2efish\x1e\x7e/\x2econfig/fish/completions/ql\x2efish
|
|
||||||
SETUVAR _fisher_ilancosman_2F_tide_40_v6_files:\x7e/\x2econfig/fish/functions/_tide_1_line_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_2_line_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_cache_variables\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_detect_os\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_find_and_remove\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_fish_colorize\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_aws\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_character\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_cmd_duration\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_context\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_crystal\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_direnv\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_distrobox\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_docker\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_elixir\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_gcloud\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_git\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_go\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_java\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_jobs\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_kubectl\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_nix_shell\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_node\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_os\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_php\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_private_mode\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_pulumi\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_python\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_ruby\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_rustc\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_shlvl\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_status\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_terraform\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_time\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_toolbox\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_vi_mode\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_zig\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_parent_dirs\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_print_item\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_pwd\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_remove_unusable_items\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_sub_bug\x2dreport\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_sub_configure\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_sub_reload\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_mode_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/tide\x1e\x7e/\x2econfig/fish/functions/tide\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/_tide_init\x2efish\x1e\x7e/\x2econfig/fish/completions/tide\x2efish
|
|
||||||
SETUVAR _fisher_jethrokuan_2F_z_files:\x7e/\x2econfig/fish/functions/__z\x2efish\x1e\x7e/\x2econfig/fish/functions/__z_add\x2efish\x1e\x7e/\x2econfig/fish/functions/__z_clean\x2efish\x1e\x7e/\x2econfig/fish/functions/__z_complete\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/z\x2efish
|
|
||||||
SETUVAR _fisher_jgusta_2F_paths_files:\x7e/\x2econfig/fish/functions/paths\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/paths\x2efish
|
|
||||||
SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish
|
|
||||||
SETUVAR _fisher_jorgebucaran_2F_nvm_2E_fish_files:\x7e/\x2econfig/fish/functions/_nvm_index_update\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_list\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_version_activate\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_version_deactivate\x2efish\x1e\x7e/\x2econfig/fish/functions/nvm\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/nvm\x2efish\x1e\x7e/\x2econfig/fish/completions/nvm\x2efish
|
|
||||||
SETUVAR _fisher_plugins:jorgebucaran/fisher\x1ejorgebucaran/nvm\x2efish\x1eilancosman/tide\x40v6\x1ejethrokuan/z\x1ehalostatue/fish\x2dmacos\x40v7\x1eehfive/fish\x2dbash2env\x1ejgusta/paths\x1edanhper/fish\x2dssh\x2dagent\x1ehalostatue/fish\x2dbrew\x40v3
|
|
||||||
SETUVAR _fisher_upgraded_to_4_4:\x1d
|
|
||||||
SETUVAR _tide_left_items:os\x1epwd\x1egit\x1enewline\x1echaracter
|
|
||||||
SETUVAR _tide_prompt_4323:\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f\uf179\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\x20\x1b\x5bm\x0f\x1b\x5bm\x0f\x40PWD\x40\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\x20\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mmain\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x20\x2a1\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x20\x2116\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x3f4\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f\x20\x1e\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\u276f\x1e\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f\x20\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5b38\x3b2\x3b68\x3b136\x3b62m\ue24f\x2022\x2e13\x2e1\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\x20\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5b38\x3b2\x3b0\x3b175\x3b175m\U000f0320\x203\x2e13\x2e2\x1b\x5bm\x0f\x1b\x5bm\x0f\x1b\x5bm\x0f
|
|
||||||
SETUVAR _tide_prompt_78628:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\uf179\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x40PWD\x40\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x20\x1e\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\u276f\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\uf252\x207m\x2013s\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm
|
|
||||||
SETUVAR _tide_right_items:status\x1ecmd_duration\x1econtext\x1ejobs\x1enode\x1epython\x1ejava\x1ephp\x1eruby\x1ekubectl\x1eterraform\x1eaws
|
|
||||||
SETUVAR fish_color_autosuggestion:brblack
|
|
||||||
SETUVAR fish_color_cancel:\x2dr
|
|
||||||
SETUVAR fish_color_command:blue
|
|
||||||
SETUVAR fish_color_comment:red
|
|
||||||
SETUVAR fish_color_cwd:green
|
|
||||||
SETUVAR fish_color_cwd_root:red
|
|
||||||
SETUVAR fish_color_end:green
|
|
||||||
SETUVAR fish_color_error:brred
|
|
||||||
SETUVAR fish_color_escape:brcyan
|
|
||||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
|
||||||
SETUVAR fish_color_host:normal
|
|
||||||
SETUVAR fish_color_host_remote:yellow
|
|
||||||
SETUVAR fish_color_normal:normal
|
|
||||||
SETUVAR fish_color_operator:brcyan
|
|
||||||
SETUVAR fish_color_param:cyan
|
|
||||||
SETUVAR fish_color_quote:yellow
|
|
||||||
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
|
|
||||||
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
|
|
||||||
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
|
||||||
SETUVAR fish_color_status:red
|
|
||||||
SETUVAR fish_color_user:brgreen
|
|
||||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
|
||||||
SETUVAR fish_greeting:\x1d
|
|
||||||
SETUVAR fish_key_bindings:fish_default_key_bindings
|
|
||||||
SETUVAR fish_pager_color_completion:normal
|
|
||||||
SETUVAR fish_pager_color_description:yellow\x1e\x2di
|
|
||||||
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
|
||||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
|
||||||
SETUVAR fish_pager_color_selected_background:\x2dr
|
|
||||||
SETUVAR fish_user_paths:/Users/ivuorinen/\x2elocal/state/composer/vendor/bin\x1e/Users/ivuorinen/\x2elocal/share/nvim/mason/bin\x1e/Users/ivuorinen/\x2elocal/share/bob/nvim\x2dbin\x1e/Users/ivuorinen/\x2elocal/bin
|
|
||||||
SETUVAR tide_aws_bg_color:normal
|
|
||||||
SETUVAR tide_aws_color:FF9900
|
|
||||||
SETUVAR tide_aws_icon:\uf270
|
|
||||||
SETUVAR tide_character_color:5FD700
|
|
||||||
SETUVAR tide_character_color_failure:FF0000
|
|
||||||
SETUVAR tide_character_icon:\u276f
|
|
||||||
SETUVAR tide_character_vi_icon_default:\u276e
|
|
||||||
SETUVAR tide_character_vi_icon_replace:\u25b6
|
|
||||||
SETUVAR tide_character_vi_icon_visual:V
|
|
||||||
SETUVAR tide_cmd_duration_bg_color:normal
|
|
||||||
SETUVAR tide_cmd_duration_color:87875F
|
|
||||||
SETUVAR tide_cmd_duration_decimals:0
|
|
||||||
SETUVAR tide_cmd_duration_icon:\uf252
|
|
||||||
SETUVAR tide_cmd_duration_threshold:3000
|
|
||||||
SETUVAR tide_context_always_display:false
|
|
||||||
SETUVAR tide_context_bg_color:normal
|
|
||||||
SETUVAR tide_context_color_default:D7AF87
|
|
||||||
SETUVAR tide_context_color_root:D7AF00
|
|
||||||
SETUVAR tide_context_color_ssh:D7AF87
|
|
||||||
SETUVAR tide_context_hostname_parts:1
|
|
||||||
SETUVAR tide_crystal_bg_color:normal
|
|
||||||
SETUVAR tide_crystal_color:FFFFFF
|
|
||||||
SETUVAR tide_crystal_icon:\ue62f
|
|
||||||
SETUVAR tide_direnv_bg_color:normal
|
|
||||||
SETUVAR tide_direnv_bg_color_denied:normal
|
|
||||||
SETUVAR tide_direnv_color:D7AF00
|
|
||||||
SETUVAR tide_direnv_color_denied:FF0000
|
|
||||||
SETUVAR tide_direnv_icon:\u25bc
|
|
||||||
SETUVAR tide_distrobox_bg_color:normal
|
|
||||||
SETUVAR tide_distrobox_color:FF00FF
|
|
||||||
SETUVAR tide_distrobox_icon:\U000f01a7
|
|
||||||
SETUVAR tide_docker_bg_color:normal
|
|
||||||
SETUVAR tide_docker_color:2496ED
|
|
||||||
SETUVAR tide_docker_default_contexts:default\x1ecolima
|
|
||||||
SETUVAR tide_docker_icon:\uf308
|
|
||||||
SETUVAR tide_elixir_bg_color:normal
|
|
||||||
SETUVAR tide_elixir_color:4E2A8E
|
|
||||||
SETUVAR tide_elixir_icon:\ue62d
|
|
||||||
SETUVAR tide_gcloud_bg_color:normal
|
|
||||||
SETUVAR tide_gcloud_color:4285F4
|
|
||||||
SETUVAR tide_gcloud_icon:\U000f02ad
|
|
||||||
SETUVAR tide_git_bg_color:normal
|
|
||||||
SETUVAR tide_git_bg_color_unstable:normal
|
|
||||||
SETUVAR tide_git_bg_color_urgent:normal
|
|
||||||
SETUVAR tide_git_color_branch:5FD700
|
|
||||||
SETUVAR tide_git_color_conflicted:FF0000
|
|
||||||
SETUVAR tide_git_color_dirty:D7AF00
|
|
||||||
SETUVAR tide_git_color_operation:FF0000
|
|
||||||
SETUVAR tide_git_color_staged:D7AF00
|
|
||||||
SETUVAR tide_git_color_stash:5FD700
|
|
||||||
SETUVAR tide_git_color_untracked:00AFFF
|
|
||||||
SETUVAR tide_git_color_upstream:5FD700
|
|
||||||
SETUVAR tide_git_icon:\uf1d3
|
|
||||||
SETUVAR tide_git_truncation_length:24
|
|
||||||
SETUVAR tide_git_truncation_strategy:\x1d
|
|
||||||
SETUVAR tide_go_bg_color:normal
|
|
||||||
SETUVAR tide_go_color:00ACD7
|
|
||||||
SETUVAR tide_go_icon:\ue627
|
|
||||||
SETUVAR tide_java_bg_color:normal
|
|
||||||
SETUVAR tide_java_color:ED8B00
|
|
||||||
SETUVAR tide_java_icon:\ue256
|
|
||||||
SETUVAR tide_jobs_bg_color:normal
|
|
||||||
SETUVAR tide_jobs_color:5FAF00
|
|
||||||
SETUVAR tide_jobs_icon:\uf013
|
|
||||||
SETUVAR tide_jobs_number_threshold:1000
|
|
||||||
SETUVAR tide_kubectl_bg_color:normal
|
|
||||||
SETUVAR tide_kubectl_color:326CE5
|
|
||||||
SETUVAR tide_kubectl_icon:\U000f10fe
|
|
||||||
SETUVAR tide_left_prompt_frame_enabled:false
|
|
||||||
SETUVAR tide_left_prompt_items:os\x1epwd\x1egit\x1enewline\x1echaracter
|
|
||||||
SETUVAR tide_left_prompt_prefix:
|
|
||||||
SETUVAR tide_left_prompt_separator_diff_color:\x20
|
|
||||||
SETUVAR tide_left_prompt_separator_same_color:\x20
|
|
||||||
SETUVAR tide_left_prompt_suffix:\x20
|
|
||||||
SETUVAR tide_nix_shell_bg_color:normal
|
|
||||||
SETUVAR tide_nix_shell_color:7EBAE4
|
|
||||||
SETUVAR tide_nix_shell_icon:\uf313
|
|
||||||
SETUVAR tide_node_bg_color:normal
|
|
||||||
SETUVAR tide_node_color:44883E
|
|
||||||
SETUVAR tide_node_icon:\ue24f
|
|
||||||
SETUVAR tide_os_bg_color:normal
|
|
||||||
SETUVAR tide_os_color:normal
|
|
||||||
SETUVAR tide_os_icon:\uf179
|
|
||||||
SETUVAR tide_php_bg_color:normal
|
|
||||||
SETUVAR tide_php_color:617CBE
|
|
||||||
SETUVAR tide_php_icon:\ue608
|
|
||||||
SETUVAR tide_private_mode_bg_color:normal
|
|
||||||
SETUVAR tide_private_mode_color:FFFFFF
|
|
||||||
SETUVAR tide_private_mode_icon:\U000f05f9
|
|
||||||
SETUVAR tide_prompt_add_newline_before:true
|
|
||||||
SETUVAR tide_prompt_color_frame_and_connection:6C6C6C
|
|
||||||
SETUVAR tide_prompt_color_separator_same_color:949494
|
|
||||||
SETUVAR tide_prompt_icon_connection:\x20
|
|
||||||
SETUVAR tide_prompt_min_cols:34
|
|
||||||
SETUVAR tide_prompt_pad_items:false
|
|
||||||
SETUVAR tide_prompt_transient_enabled:true
|
|
||||||
SETUVAR tide_pulumi_bg_color:normal
|
|
||||||
SETUVAR tide_pulumi_color:F7BF2A
|
|
||||||
SETUVAR tide_pulumi_icon:\uf1b2
|
|
||||||
SETUVAR tide_pwd_bg_color:normal
|
|
||||||
SETUVAR tide_pwd_color_anchors:00AFFF
|
|
||||||
SETUVAR tide_pwd_color_dirs:0087AF
|
|
||||||
SETUVAR tide_pwd_color_truncated_dirs:8787AF
|
|
||||||
SETUVAR tide_pwd_icon:\uf07c
|
|
||||||
SETUVAR tide_pwd_icon_home:\uf015
|
|
||||||
SETUVAR tide_pwd_icon_unwritable:\uf023
|
|
||||||
SETUVAR tide_pwd_markers:\x2ebzr\x1e\x2ecitc\x1e\x2egit\x1e\x2ehg\x1e\x2enode\x2dversion\x1e\x2epython\x2dversion\x1e\x2eruby\x2dversion\x1e\x2eshorten_folder_marker\x1e\x2esvn\x1e\x2eterraform\x1eCargo\x2etoml\x1ecomposer\x2ejson\x1eCVS\x1ego\x2emod\x1epackage\x2ejson\x1ebuild\x2ezig
|
|
||||||
SETUVAR tide_python_bg_color:normal
|
|
||||||
SETUVAR tide_python_color:00AFAF
|
|
||||||
SETUVAR tide_python_icon:\U000f0320
|
|
||||||
SETUVAR tide_right_prompt_frame_enabled:false
|
|
||||||
SETUVAR tide_right_prompt_items:status\x1ecmd_duration\x1econtext\x1ejobs\x1edirenv\x1enode\x1epython\x1erustc\x1ejava\x1ephp\x1epulumi\x1eruby\x1ego\x1egcloud\x1ekubectl\x1edistrobox\x1etoolbox\x1eterraform\x1eaws\x1enix_shell\x1ecrystal\x1eelixir\x1ezig
|
|
||||||
SETUVAR tide_right_prompt_prefix:\x20
|
|
||||||
SETUVAR tide_right_prompt_separator_diff_color:\x20
|
|
||||||
SETUVAR tide_right_prompt_separator_same_color:\x20
|
|
||||||
SETUVAR tide_right_prompt_suffix:
|
|
||||||
SETUVAR tide_ruby_bg_color:normal
|
|
||||||
SETUVAR tide_ruby_color:B31209
|
|
||||||
SETUVAR tide_ruby_icon:\ue23e
|
|
||||||
SETUVAR tide_rustc_bg_color:normal
|
|
||||||
SETUVAR tide_rustc_color:F74C00
|
|
||||||
SETUVAR tide_rustc_icon:\ue7a8
|
|
||||||
SETUVAR tide_shlvl_bg_color:normal
|
|
||||||
SETUVAR tide_shlvl_color:d78700
|
|
||||||
SETUVAR tide_shlvl_icon:\uf120
|
|
||||||
SETUVAR tide_shlvl_threshold:1
|
|
||||||
SETUVAR tide_status_bg_color:normal
|
|
||||||
SETUVAR tide_status_bg_color_failure:normal
|
|
||||||
SETUVAR tide_status_color:5FAF00
|
|
||||||
SETUVAR tide_status_color_failure:D70000
|
|
||||||
SETUVAR tide_status_icon:\u2714
|
|
||||||
SETUVAR tide_status_icon_failure:\u2718
|
|
||||||
SETUVAR tide_terraform_bg_color:normal
|
|
||||||
SETUVAR tide_terraform_color:844FBA
|
|
||||||
SETUVAR tide_terraform_icon:\U000f1062
|
|
||||||
SETUVAR tide_time_bg_color:normal
|
|
||||||
SETUVAR tide_time_color:5F8787
|
|
||||||
SETUVAR tide_time_format:
|
|
||||||
SETUVAR tide_toolbox_bg_color:normal
|
|
||||||
SETUVAR tide_toolbox_color:613583
|
|
||||||
SETUVAR tide_toolbox_icon:\ue24f
|
|
||||||
SETUVAR tide_vi_mode_bg_color_default:normal
|
|
||||||
SETUVAR tide_vi_mode_bg_color_insert:normal
|
|
||||||
SETUVAR tide_vi_mode_bg_color_replace:normal
|
|
||||||
SETUVAR tide_vi_mode_bg_color_visual:normal
|
|
||||||
SETUVAR tide_vi_mode_color_default:949494
|
|
||||||
SETUVAR tide_vi_mode_color_insert:87AFAF
|
|
||||||
SETUVAR tide_vi_mode_color_replace:87AF87
|
|
||||||
SETUVAR tide_vi_mode_color_visual:FF8700
|
|
||||||
SETUVAR tide_vi_mode_icon_default:D
|
|
||||||
SETUVAR tide_vi_mode_icon_insert:I
|
|
||||||
SETUVAR tide_vi_mode_icon_replace:R
|
|
||||||
SETUVAR tide_vi_mode_icon_visual:V
|
|
||||||
SETUVAR tide_zig_bg_color:normal
|
|
||||||
SETUVAR tide_zig_color:F7A41D
|
|
||||||
SETUVAR tide_zig_icon:\ue6a9
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
function .c --wraps='cd ~/Code' --description 'alias .c=cd ~/Code'
|
|
||||||
cd ~/Code $argv
|
|
||||||
|
|
||||||
end
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
function .d --wraps='cd ~/.dotfiles' --description 'alias .d=cd ~/.dotfiles'
|
|
||||||
cd ~/.dotfiles $argv
|
|
||||||
|
|
||||||
end
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# Copyright (c) 2022 Huang-Huang Bao
|
|
||||||
#
|
|
||||||
# This software is released under the MIT License.
|
|
||||||
# https://opensource.org/licenses/MIT
|
|
||||||
|
|
||||||
# shellcheck disable=SC2076
|
|
||||||
set -e
|
|
||||||
|
|
||||||
disallowd_vars_arr=(
|
|
||||||
_
|
|
||||||
fish_kill_signal
|
|
||||||
fish_killring
|
|
||||||
fish_pid
|
|
||||||
history
|
|
||||||
hostname
|
|
||||||
PWD
|
|
||||||
pipestatus
|
|
||||||
SHLVL
|
|
||||||
status
|
|
||||||
status_generation
|
|
||||||
version
|
|
||||||
)
|
|
||||||
disallowd_vars=" ${disallowd_vars_arr[*]} "
|
|
||||||
|
|
||||||
fish_escape() {
|
|
||||||
value="${1//\\/\\\\}"
|
|
||||||
value="${value//\'/\\\'}"
|
|
||||||
echo "'${value}'"
|
|
||||||
}
|
|
||||||
|
|
||||||
flag_impure="$__FISH_BASH2ENV_IMPURE"
|
|
||||||
unset __FISH_BASH2ENV_IMPURE
|
|
||||||
|
|
||||||
if [[ -z "$flag_impure" ]]; then
|
|
||||||
old_env=" $(env -0 | tr '\0' ' ') "
|
|
||||||
fi
|
|
||||||
|
|
||||||
eval_status=
|
|
||||||
eval "$*" 1>&2 || eval_status=$?
|
|
||||||
|
|
||||||
env -0 | while IFS= read -rs -d $'\0' line; do
|
|
||||||
if [[ -z "$flag_impure" && "${old_env}" =~ " ${line} " ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
name="${line%%=*}"
|
|
||||||
if [[ "${disallowd_vars}" =~ " ${name} " ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
value="$(fish_escape "${line#*=}")"
|
|
||||||
echo "set -gx ${name} ${value}"
|
|
||||||
done
|
|
||||||
|
|
||||||
exit $eval_status
|
|
||||||
140
config/fish/functions/__bass.py
Normal file
140
config/fish/functions/__bass.py
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
"""
|
||||||
|
To be used with a companion fish function like this:
|
||||||
|
|
||||||
|
function refish
|
||||||
|
set -l _x (python /tmp/bass.py source ~/.nvm/nvim.sh ';' nvm use iojs); source $_x; and rm -f $_x
|
||||||
|
end
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import signal
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import traceback
|
||||||
|
|
||||||
|
|
||||||
|
BASH = 'bash'
|
||||||
|
|
||||||
|
FISH_READONLY = [
|
||||||
|
'PWD', 'SHLVL', 'history', 'pipestatus', 'status', 'version',
|
||||||
|
'FISH_VERSION', 'fish_pid', 'hostname', '_', 'fish_private_mode'
|
||||||
|
]
|
||||||
|
|
||||||
|
IGNORED = [
|
||||||
|
'PS1', 'XPC_SERVICE_NAME'
|
||||||
|
]
|
||||||
|
|
||||||
|
def ignored(name):
|
||||||
|
if name == 'PWD': # this is read only, but has special handling
|
||||||
|
return False
|
||||||
|
# ignore other read only variables
|
||||||
|
if name in FISH_READONLY:
|
||||||
|
return True
|
||||||
|
if name in IGNORED or name.startswith("BASH_FUNC"):
|
||||||
|
return True
|
||||||
|
if name.startswith('%'):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def escape(string):
|
||||||
|
# use json.dumps to reliably escape quotes and backslashes
|
||||||
|
return json.dumps(string).replace(r'$', r'\$')
|
||||||
|
|
||||||
|
def escape_identifier(word):
|
||||||
|
return escape(word.replace('?', '\\?'))
|
||||||
|
|
||||||
|
def comment(string):
|
||||||
|
return '\n'.join(['# ' + line for line in string.split('\n')])
|
||||||
|
|
||||||
|
def gen_script():
|
||||||
|
# Use the following instead of /usr/bin/env to read environment so we can
|
||||||
|
# deal with multi-line environment variables (and other odd cases).
|
||||||
|
env_reader = "%s -c 'import os,json; print(json.dumps({k:v for k,v in os.environ.items()}))'" % (sys.executable)
|
||||||
|
args = [BASH, '-c', env_reader]
|
||||||
|
output = subprocess.check_output(args, universal_newlines=True)
|
||||||
|
old_env = output.strip()
|
||||||
|
|
||||||
|
pipe_r, pipe_w = os.pipe()
|
||||||
|
if sys.version_info >= (3, 4):
|
||||||
|
os.set_inheritable(pipe_w, True)
|
||||||
|
command = 'eval $1 && ({}; alias) >&{}'.format(
|
||||||
|
env_reader,
|
||||||
|
pipe_w
|
||||||
|
)
|
||||||
|
args = [BASH, '-c', command, 'bass', ' '.join(sys.argv[1:])]
|
||||||
|
p = subprocess.Popen(args, universal_newlines=True, close_fds=False)
|
||||||
|
os.close(pipe_w)
|
||||||
|
with os.fdopen(pipe_r) as f:
|
||||||
|
new_env = f.readline()
|
||||||
|
alias_str = f.read()
|
||||||
|
if p.wait() != 0:
|
||||||
|
raise subprocess.CalledProcessError(
|
||||||
|
returncode=p.returncode,
|
||||||
|
cmd=' '.join(sys.argv[1:]),
|
||||||
|
output=new_env + alias_str
|
||||||
|
)
|
||||||
|
new_env = new_env.strip()
|
||||||
|
|
||||||
|
old_env = json.loads(old_env)
|
||||||
|
new_env = json.loads(new_env)
|
||||||
|
|
||||||
|
script_lines = []
|
||||||
|
|
||||||
|
for k, v in new_env.items():
|
||||||
|
if ignored(k):
|
||||||
|
continue
|
||||||
|
v1 = old_env.get(k)
|
||||||
|
if not v1:
|
||||||
|
script_lines.append(comment('adding %s=%s' % (k, v)))
|
||||||
|
elif v1 != v:
|
||||||
|
script_lines.append(comment('updating %s=%s -> %s' % (k, v1, v)))
|
||||||
|
# process special variables
|
||||||
|
if k == 'PWD':
|
||||||
|
script_lines.append('cd %s' % escape(v))
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
if k == 'PATH':
|
||||||
|
value = ' '.join([escape(directory)
|
||||||
|
for directory in v.split(':')])
|
||||||
|
else:
|
||||||
|
value = escape(v)
|
||||||
|
script_lines.append('set -g -x %s %s' % (k, value))
|
||||||
|
|
||||||
|
for var in set(old_env.keys()) - set(new_env.keys()):
|
||||||
|
script_lines.append(comment('removing %s' % var))
|
||||||
|
script_lines.append('set -e %s' % var)
|
||||||
|
|
||||||
|
script = '\n'.join(script_lines)
|
||||||
|
|
||||||
|
alias_lines = []
|
||||||
|
for line in alias_str.splitlines():
|
||||||
|
_, rest = line.split(None, 1)
|
||||||
|
k, v = rest.split("=", 1)
|
||||||
|
alias_lines.append("alias " + escape_identifier(k) + "=" + v)
|
||||||
|
alias = '\n'.join(alias_lines)
|
||||||
|
|
||||||
|
return script + '\n' + alias
|
||||||
|
|
||||||
|
script_file = os.fdopen(3, 'w')
|
||||||
|
|
||||||
|
if not sys.argv[1:]:
|
||||||
|
print('__bass_usage', file=script_file, end='')
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
try:
|
||||||
|
script = gen_script()
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
sys.exit(e.returncode)
|
||||||
|
except Exception:
|
||||||
|
print('Bass internal error!', file=sys.stderr)
|
||||||
|
raise # traceback will output to stderr
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
||||||
|
os.kill(os.getpid(), signal.SIGINT)
|
||||||
|
else:
|
||||||
|
script_file.write(script)
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
function _nvm_index_update
|
|
||||||
test ! -d $nvm_data && command mkdir -p $nvm_data
|
|
||||||
|
|
||||||
set --local index $nvm_data/.index
|
|
||||||
|
|
||||||
if not command curl -q --location --silent $nvm_mirror/index.tab >$index.temp
|
|
||||||
command rm -f $index.temp
|
|
||||||
echo "nvm: Can't update index, host unavailable: \"$nvm_mirror\"" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
command awk -v OFS=\t '
|
|
||||||
/v0.9.12/ { exit } # Unsupported
|
|
||||||
NR > 1 {
|
|
||||||
print $1 (NR == 2 ? " latest" : $10 != "-" ? " lts/" tolower($10) : "")
|
|
||||||
}
|
|
||||||
' $index.temp >$index
|
|
||||||
|
|
||||||
command rm -f $index.temp
|
|
||||||
end
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
function _nvm_list
|
|
||||||
set --local versions $nvm_data/*
|
|
||||||
|
|
||||||
set --query versions[1] &&
|
|
||||||
string match --entire --regex -- (
|
|
||||||
string replace --all -- $nvm_data/ "" $versions |
|
|
||||||
string match --regex -- "v\d.+" |
|
|
||||||
string escape --style=regex |
|
|
||||||
string join "|"
|
|
||||||
) <$nvm_data/.index
|
|
||||||
|
|
||||||
command --all node |
|
|
||||||
string match --quiet --invert --regex -- "^$nvm_data" && echo system
|
|
||||||
end
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
function _nvm_version_activate --argument-names ver
|
|
||||||
set --global --export nvm_current_version $ver
|
|
||||||
set --prepend PATH $nvm_data/$ver/bin
|
|
||||||
end
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
function _nvm_version_deactivate --argument-names ver
|
|
||||||
test "$nvm_current_version" = "$ver" && set --erase nvm_current_version
|
|
||||||
set --local index (contains --index -- $nvm_data/$ver/bin $PATH) &&
|
|
||||||
set --erase PATH[$index]
|
|
||||||
end
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
# Copyright (c) 2022 Huang-Huang Bao
|
|
||||||
#
|
|
||||||
# This software is released under the MIT License.
|
|
||||||
# https://opensource.org/licenses/MIT
|
|
||||||
|
|
||||||
function bash2env -d "Import environment variables modified by given bash command"
|
|
||||||
argparse --stop-nonopt h/help i/impure -- $argv
|
|
||||||
or set argv
|
|
||||||
|
|
||||||
function _print_usage
|
|
||||||
echo 'Usage:' \
|
|
||||||
(set_color $fish_color_command)'bash2env' \
|
|
||||||
(set_color $fish_color_normal)'[-i/--impure]' \
|
|
||||||
(set_color $fish_color_param)"<bash command>"
|
|
||||||
end
|
|
||||||
|
|
||||||
if test -n "$_flag_help"
|
|
||||||
_print_usage
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if test (count $argv) -eq 0
|
|
||||||
_print_usage
|
|
||||||
return 22
|
|
||||||
end
|
|
||||||
|
|
||||||
if test -n "$_flag_impure"
|
|
||||||
set _flag_impure 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set -l DIR (dirname (status -f))
|
|
||||||
__FISH_BASH2ENV_IMPURE=$_flag_impure command \
|
|
||||||
bash $DIR/__bash2env.sh $argv | source
|
|
||||||
|
|
||||||
for code in $pipestatus
|
|
||||||
if test $code != 0
|
|
||||||
return $code
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
29
config/fish/functions/bass.fish
Normal file
29
config/fish/functions/bass.fish
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
function bass
|
||||||
|
set -l bash_args $argv
|
||||||
|
set -l bass_debug
|
||||||
|
if test "$bash_args[1]_" = '-d_'
|
||||||
|
set bass_debug true
|
||||||
|
set -e bash_args[1]
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l script_file (mktemp)
|
||||||
|
if command -v python3 >/dev/null 2>&1
|
||||||
|
command python3 -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file
|
||||||
|
else
|
||||||
|
command python -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file
|
||||||
|
end
|
||||||
|
set -l bass_status $status
|
||||||
|
if test $bass_status -ne 0
|
||||||
|
return $bass_status
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -n "$bass_debug"
|
||||||
|
cat $script_file
|
||||||
|
end
|
||||||
|
source $script_file
|
||||||
|
command rm $script_file
|
||||||
|
end
|
||||||
|
|
||||||
|
function __bass_usage
|
||||||
|
echo "Usage: bass [-d] <bash-command>"
|
||||||
|
end
|
||||||
16
config/fish/functions/load_nvm.fish
Normal file
16
config/fish/functions/load_nvm.fish
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
function load_nvm --on-variable="PWD"
|
||||||
|
set -l default_node_version (nvm version default)
|
||||||
|
set -l node_version (nvm version)
|
||||||
|
set -l nvmrc_path (nvm_find_nvmrc)
|
||||||
|
if test -n "$nvmrc_path"
|
||||||
|
set -l nvmrc_node_version (nvm version (cat $nvmrc_path))
|
||||||
|
if test "$nvmrc_node_version" = "N/A"
|
||||||
|
nvm install (cat $nvmrc_path)
|
||||||
|
else if test "$nvmrc_node_version" != "$node_version"
|
||||||
|
nvm use $nvmrc_node_version
|
||||||
|
end
|
||||||
|
else if test "$node_version" != "$default_node_version"
|
||||||
|
echo "Reverting to default Node version"
|
||||||
|
nvm use default
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -1,235 +1,4 @@
|
|||||||
function nvm --description "Node version manager"
|
function nvm
|
||||||
for silent in --silent -s
|
bass source $NVM_DIR/nvm.sh --no-use ';' nvm $argv
|
||||||
if set --local index (contains --index -- $silent $argv)
|
|
||||||
set --erase argv[$index] && break
|
|
||||||
end
|
|
||||||
set --erase silent
|
|
||||||
end
|
|
||||||
|
|
||||||
set --local cmd $argv[1]
|
|
||||||
set --local ver $argv[2]
|
|
||||||
|
|
||||||
if set --query silent && ! set --query cmd[1]
|
|
||||||
echo "nvm: Version number not specified (see nvm -h for usage)" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
if ! set --query ver[1] && contains -- "$cmd" install use
|
|
||||||
for file in .nvmrc .node-version
|
|
||||||
set file (_nvm_find_up $PWD $file) && read ver <$file && break
|
|
||||||
end
|
|
||||||
|
|
||||||
if ! set --query ver[1]
|
|
||||||
echo "nvm: Invalid version or missing \".nvmrc\" file" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
set --local their_version $ver
|
|
||||||
|
|
||||||
switch "$cmd"
|
|
||||||
case -v --version
|
|
||||||
echo "nvm, version 2.2.17"
|
|
||||||
case "" -h --help
|
|
||||||
echo "Usage: nvm install <version> Download and activate the specified Node version"
|
|
||||||
echo " nvm install Install the version specified in the nearest .nvmrc file"
|
|
||||||
echo " nvm use <version> Activate the specified Node version in the current shell"
|
|
||||||
echo " nvm use Activate the version specified in the nearest .nvmrc file"
|
|
||||||
echo " nvm list List installed Node versions"
|
|
||||||
echo " nvm list-remote List available Node versions to install"
|
|
||||||
echo " nvm list-remote <regex> List Node versions matching a given regex pattern"
|
|
||||||
echo " nvm current Print the currently-active Node version"
|
|
||||||
echo " nvm uninstall <version> Uninstall the specified Node version"
|
|
||||||
echo "Options:"
|
|
||||||
echo " -s, --silent Suppress standard output"
|
|
||||||
echo " -v, --version Print the version of nvm"
|
|
||||||
echo " -h, --help Print this help message"
|
|
||||||
echo "Variables:"
|
|
||||||
echo " nvm_arch Override architecture, e.g. x64-musl"
|
|
||||||
echo " nvm_mirror Use a mirror for downloading Node binaries"
|
|
||||||
echo " nvm_default_version Set the default version for new shells"
|
|
||||||
echo " nvm_default_packages Install a list of packages every time a Node version is installed"
|
|
||||||
echo " nvm_data Set a custom directory for storing nvm data"
|
|
||||||
echo "Examples:"
|
|
||||||
echo " nvm install latest Install the latest version of Node"
|
|
||||||
echo " nvm use 14.15.1 Use Node version 14.15.1"
|
|
||||||
echo " nvm use system Activate the system's Node version"
|
|
||||||
|
|
||||||
case install
|
|
||||||
_nvm_index_update
|
|
||||||
|
|
||||||
string match --entire --regex -- (_nvm_version_match $ver) <$nvm_data/.index | read ver alias
|
|
||||||
|
|
||||||
if ! set --query ver[1]
|
|
||||||
echo "nvm: Invalid version number or alias: \"$their_version\"" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
if test ! -e $nvm_data/$ver
|
|
||||||
set --local os (command uname -s | string lower)
|
|
||||||
set --local ext tar.gz
|
|
||||||
set --local arch (command uname -m)
|
|
||||||
|
|
||||||
switch $os
|
|
||||||
case aix
|
|
||||||
set arch ppc64
|
|
||||||
case sunos
|
|
||||||
case linux
|
|
||||||
case darwin
|
|
||||||
case {MSYS_NT,MINGW\*_NT}\*
|
|
||||||
set os win
|
|
||||||
set ext zip
|
|
||||||
case \*
|
|
||||||
echo "nvm: Unsupported operating system: \"$os\"" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
switch $arch
|
|
||||||
case i\*86
|
|
||||||
set arch x86
|
|
||||||
case x86_64
|
|
||||||
set arch x64
|
|
||||||
case arm64
|
|
||||||
string match --regex --quiet "v(?<major>\d+)" $ver
|
|
||||||
if test "$os" = darwin -a $major -lt 16
|
|
||||||
set arch x64
|
|
||||||
end
|
|
||||||
case armv6 armv6l
|
|
||||||
set arch armv6l
|
|
||||||
case armv7 armv7l
|
|
||||||
set arch armv7l
|
|
||||||
case armv8 armv8l aarch64
|
|
||||||
set arch arm64
|
|
||||||
end
|
|
||||||
|
|
||||||
set --query nvm_arch && set arch $nvm_arch
|
|
||||||
|
|
||||||
set --local dir "node-$ver-$os-$arch"
|
|
||||||
set --local url $nvm_mirror/$ver/$dir.$ext
|
|
||||||
|
|
||||||
command mkdir -p $nvm_data/$ver
|
|
||||||
|
|
||||||
if ! set --query silent
|
|
||||||
echo -e "Installing Node \x1b[1m$ver\x1b[22m $alias"
|
|
||||||
echo -e "Fetching \x1b[4m$url\x1b[24m\x1b[7m"
|
|
||||||
end
|
|
||||||
|
|
||||||
if ! command curl -q $silent --progress-bar --location $url |
|
|
||||||
command tar --extract --gzip --directory $nvm_data/$ver 2>/dev/null
|
|
||||||
command rm -rf $nvm_data/$ver
|
|
||||||
echo -e "\033[F\33[2K\x1b[0mnvm: Invalid mirror or host unavailable: \"$url\"" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set --query silent || echo -en "\033[F\33[2K\x1b[0m"
|
|
||||||
|
|
||||||
if test "$os" = win
|
|
||||||
command mv $nvm_data/$ver/$dir $nvm_data/$ver/bin
|
|
||||||
else
|
|
||||||
command mv $nvm_data/$ver/$dir/* $nvm_data/$ver
|
|
||||||
command rm -rf $nvm_data/$ver/$dir
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if test $ver != "$nvm_current_version"
|
|
||||||
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
|
|
||||||
_nvm_version_activate $ver
|
|
||||||
|
|
||||||
set --query nvm_default_packages[1] && npm install --global $silent $nvm_default_packages
|
|
||||||
end
|
|
||||||
|
|
||||||
set --query silent || printf "Now using Node %s (npm %s) %s\n" (_nvm_node_info)
|
|
||||||
case use
|
|
||||||
test $ver = default && set ver $nvm_default_version
|
|
||||||
_nvm_list | string match --entire --regex -- (_nvm_version_match $ver) | read ver __
|
|
||||||
|
|
||||||
if ! set --query ver[1]
|
|
||||||
echo "nvm: Can't use Node \"$their_version\", version must be installed first" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
if test $ver != "$nvm_current_version"
|
|
||||||
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
|
|
||||||
test $ver != system && _nvm_version_activate $ver
|
|
||||||
end
|
|
||||||
|
|
||||||
set --query silent || printf "Now using Node %s (npm %s) %s\n" (_nvm_node_info)
|
|
||||||
case uninstall
|
|
||||||
if test -z "$ver"
|
|
||||||
echo "nvm: Not enough arguments for command: \"$cmd\"" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
test $ver = default && test ! -z "$nvm_default_version" && set ver $nvm_default_version
|
|
||||||
|
|
||||||
_nvm_list | string match --entire --regex -- (_nvm_version_match $ver) | read ver __
|
|
||||||
|
|
||||||
if ! set -q ver[1]
|
|
||||||
echo "nvm: Node version not installed or invalid: \"$their_version\"" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set --query silent || printf "Uninstalling Node %s %s\n" $ver (string replace ~ \~ "$nvm_data/$ver/bin/node")
|
|
||||||
|
|
||||||
_nvm_version_deactivate $ver
|
|
||||||
|
|
||||||
command rm -rf $nvm_data/$ver
|
|
||||||
case current
|
|
||||||
_nvm_current
|
|
||||||
case ls list
|
|
||||||
_nvm_list | _nvm_list_format (_nvm_current) $argv[2]
|
|
||||||
case lsr {ls,list}-remote
|
|
||||||
_nvm_index_update || return
|
|
||||||
_nvm_list | command awk '
|
|
||||||
FILENAME == "-" && (is_local[$1] = FNR == NR) { next } {
|
|
||||||
print $0 (is_local[$1] ? " ✓" : "")
|
|
||||||
}
|
|
||||||
' - $nvm_data/.index | _nvm_list_format (_nvm_current) $argv[2]
|
|
||||||
case \*
|
|
||||||
echo "nvm: Unknown command or option: \"$cmd\" (see nvm -h for usage)" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function _nvm_find_up --argument-names path file
|
|
||||||
test -e "$path/$file" && echo $path/$file || begin
|
|
||||||
test ! -z "$path" || return
|
|
||||||
_nvm_find_up (string replace --regex -- '/[^/]*$' "" $path) $file
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function _nvm_version_match --argument-names ver
|
|
||||||
string replace --regex -- '^v?(\d+|\d+\.\d+)$' 'v$1.' $ver |
|
|
||||||
string replace --filter --regex -- '^v?(\d+)' 'v$1' |
|
|
||||||
string escape --style=regex || string lower '\b'$ver'(?:/\w+)?$'
|
|
||||||
end
|
|
||||||
|
|
||||||
function _nvm_list_format --argument-names current regex
|
|
||||||
command awk -v current="$current" -v regex="$regex" '
|
|
||||||
$0 ~ regex {
|
|
||||||
aliases[versions[i++] = $1] = $2 " " $3
|
|
||||||
pad = (n = length($1)) > pad ? n : pad
|
|
||||||
}
|
|
||||||
END {
|
|
||||||
if (!i) exit 1
|
|
||||||
while (i--)
|
|
||||||
printf((current == versions[i] ? " ▶ " : " ") "%"pad"s %s\n",
|
|
||||||
versions[i], aliases[versions[i]])
|
|
||||||
}
|
|
||||||
'
|
|
||||||
end
|
|
||||||
|
|
||||||
function _nvm_current
|
|
||||||
command --search --quiet node || return
|
|
||||||
set --query nvm_current_version && echo $nvm_current_version || echo system
|
|
||||||
end
|
|
||||||
|
|
||||||
function _nvm_node_info
|
|
||||||
set --local npm_path (string replace bin/npm-cli.js "" (realpath (command --search npm)))
|
|
||||||
test -f $npm_path/package.json || set --local npm_version_default (command npm --version)
|
|
||||||
command node --eval "
|
|
||||||
console.log(process.version)
|
|
||||||
console.log('$npm_version_default' ? '$npm_version_default': require('$npm_path/package.json').version)
|
|
||||||
console.log(process.execPath)
|
|
||||||
" | string replace -- ~ \~
|
|
||||||
end
|
|
||||||
|
|||||||
3
config/fish/functions/nvm_find_nvmrc.fish
Normal file
3
config/fish/functions/nvm_find_nvmrc.fish
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function nvm_find_nvmrc
|
||||||
|
bass source $NVM_DIR/nvm.sh --no-use ';' nvm_find_nvmrc
|
||||||
|
end
|
||||||
9
config/fish/functions/open-tmux.fish
Normal file
9
config/fish/functions/open-tmux.fish
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# Description: Open tmux session if not already open
|
||||||
|
# Dependencies: tmux
|
||||||
|
# Usage: open-tmux
|
||||||
|
function open-tmux --wraps='tmux attach-session -t main || tmux new-session -s main' --description 'open tmux session'
|
||||||
|
# Check if not in an SSH session and not already in a tmux session
|
||||||
|
if test -z "$SSH_TTY"; and not set -q TMUX
|
||||||
|
command tmux attach-session -t main || command tmux new-session -s main
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -1,175 +0,0 @@
|
|||||||
function ___paths_plugin_wrap_color
|
|
||||||
set_color normal
|
|
||||||
set_color "$argv[1]"
|
|
||||||
echo -n (set_color "$argv[1]")"$argv[2..]"
|
|
||||||
set_color normal
|
|
||||||
end
|
|
||||||
|
|
||||||
# duplicated in conf.d
|
|
||||||
function ___paths_plugin_set_colors
|
|
||||||
if not set -q ___paths_plugin_colors
|
|
||||||
set -Ux ___paths_plugin_colors 27e6ff 29e0ff 5cd8ff 77d0ff 8ac8ff 9cbfff afb5ff c5a7ff d99bfe ea8feb f684d5 fe7abd ff73a3 ff708a fa7070 ff708a ff73a3 fe7abd f684d5 ea8feb d99bfe c5a7ff afb5ff 9cbfff 8ac8ff 77d0ff 5cd8ff 29e0ff
|
|
||||||
end
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
|
|
||||||
function ___paths_plugin_cycle_color
|
|
||||||
if not set -q ___paths_plugin_current_color
|
|
||||||
set -Ux ___paths_plugin_current_color 1
|
|
||||||
else if test $___paths_plugin_current_color -gt (count $___paths_plugin_colors)
|
|
||||||
set -Ux ___paths_plugin_current_color 1
|
|
||||||
end
|
|
||||||
echo $___paths_plugin_colors[$___paths_plugin_current_color]
|
|
||||||
set -Ux ___paths_plugin_current_color (math $___paths_plugin_current_color + 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
function ___paths_plugin_handle_found_item -a testName outFlags
|
|
||||||
set -f flags (string split -n ' ' -- "$outFlags")
|
|
||||||
set -f options (fish_opt -s c -l clean)
|
|
||||||
set -a options (fish_opt -s s -l single)
|
|
||||||
set -a options (fish_opt -s k -l no-color)
|
|
||||||
set -a options (fish_opt -s n -l inline)
|
|
||||||
argparse $options -- $flags
|
|
||||||
|
|
||||||
set -f arrow "=>"
|
|
||||||
# check if file exists
|
|
||||||
if test -e "$testName"
|
|
||||||
set -f nameOut (string trim -- "$testName")
|
|
||||||
if not set -q _flag_c # is not clean
|
|
||||||
if test -L "$testName" # is symlink
|
|
||||||
set -f __linkname (readlink -f "$testName")
|
|
||||||
set __linkname (string trim -- "$__linkname")
|
|
||||||
set testName (string trim -- "$testName")
|
|
||||||
if not set -q _flag_k # is color
|
|
||||||
set nameOut (___paths_plugin_wrap_color (___paths_plugin_cycle_color) $testName) (___paths_plugin_wrap_color "yellow" "$arrow") (___paths_plugin_wrap_color (___paths_plugin_cycle_color) $__linkname)
|
|
||||||
else # is color
|
|
||||||
set nameOut (echo -n "$testName" "$arrow" "$__linkname")
|
|
||||||
end
|
|
||||||
else # is not symlink
|
|
||||||
if not set -q _flag_k # is color
|
|
||||||
set testName (string trim -- "$testName")
|
|
||||||
set nameOut (___paths_plugin_wrap_color (___paths_plugin_cycle_color) "$testName")
|
|
||||||
else
|
|
||||||
set testName (string trim -- "$testName")
|
|
||||||
set nameOut "$testName"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
set nameOut (string trim -- "$nameOut")
|
|
||||||
# do the tick
|
|
||||||
if set -q _flag_k # is not color
|
|
||||||
set nameOut "- $nameOut"
|
|
||||||
else # is color
|
|
||||||
set nameOut (___paths_plugin_wrap_color "yellow" "-") "$nameOut"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
set nameOut (string trim -- "$nameOut")
|
|
||||||
echo -n $nameOut
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function paths --description "Reveal the executable matches in shell paths or fish autoload."
|
|
||||||
set -f options (fish_opt -s c -l clean)
|
|
||||||
set -a options (fish_opt -s s -l single)
|
|
||||||
set -a options (fish_opt -s k -l no-color)
|
|
||||||
set -a options (fish_opt -s q -l quiet)
|
|
||||||
set -a options (fish_opt -s n -l inline)
|
|
||||||
argparse $options -- $argv
|
|
||||||
|
|
||||||
if test (count $argv) -lt 1
|
|
||||||
echo "paths - executable matches in shell paths or fish autoload."
|
|
||||||
and echo "usage: paths [-c|-s|-k] <name>"
|
|
||||||
and echo -e "\t-c or --no-color: output without color"
|
|
||||||
and echo -e "\t-s or --single: output without color or headers, the first result"
|
|
||||||
and echo -e "\t-k or --clean: output without tick marks or headers"
|
|
||||||
# and echo -e "\t-n or --inline: output without endline"
|
|
||||||
and return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set -f foundStatus 1
|
|
||||||
set -f input (string trim -- $argv)
|
|
||||||
# deprecated
|
|
||||||
if set -q _flag_q
|
|
||||||
set _flag_c True
|
|
||||||
end
|
|
||||||
|
|
||||||
if set -q _flag_s
|
|
||||||
set _flag_k True
|
|
||||||
set _flag_c True
|
|
||||||
end
|
|
||||||
|
|
||||||
set -f outFlags ''
|
|
||||||
set -q _flag_n; and set -a outFlags -n
|
|
||||||
set -q _flag_c; and set -a outFlags -c
|
|
||||||
set -q _flag_k; and set -a outFlags -k
|
|
||||||
set -q _flag_s; and set -a outFlags -s
|
|
||||||
set outFlags (string split -n " " -- "$outFlags")
|
|
||||||
___paths_plugin_set_colors
|
|
||||||
# loop over list of path lists
|
|
||||||
for pVar in VIRTUAL_ENV fisher_path fish_function_path fish_user_paths PATH
|
|
||||||
set -e acc
|
|
||||||
set -f acc ''
|
|
||||||
set -e hit
|
|
||||||
# see if variable is empty
|
|
||||||
if test -z "$pVar"
|
|
||||||
continue
|
|
||||||
end
|
|
||||||
set -f acc (begin
|
|
||||||
for t in $$pVar
|
|
||||||
for snit in "$t/$input.fish" "$t/$input"
|
|
||||||
set -f found (___paths_plugin_handle_found_item "$snit" "$outFlags")
|
|
||||||
set found (string trim -- "$found")
|
|
||||||
if test -n "$found"
|
|
||||||
set -f hit True
|
|
||||||
echo "$found"
|
|
||||||
if set -q _flag_s
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if set -q _flag_s
|
|
||||||
if set -q hit
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
# prepend source
|
|
||||||
if not set -q _flag_c
|
|
||||||
if set -q hit
|
|
||||||
set pVar (string trim -- "$pVar")
|
|
||||||
echo -e -n "$pVar\n"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if test -n "$acc"
|
|
||||||
set foundStatus 0
|
|
||||||
for fk in $acc
|
|
||||||
echo $fk
|
|
||||||
if set -q _flag_s
|
|
||||||
# stop after one
|
|
||||||
return $foundStatus
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# check
|
|
||||||
set -l built (type --type $input 12&>/dev/null)
|
|
||||||
if test -n "$built"
|
|
||||||
and test "$built" = 'builtin'
|
|
||||||
set $foundStatus 0
|
|
||||||
if not set -q _flag_c
|
|
||||||
echo -e -n "builtin\n"
|
|
||||||
if set -q _flag_k
|
|
||||||
echo - "$input"
|
|
||||||
else # is color
|
|
||||||
echo (___paths_plugin_wrap_color "yellow" "-") (___paths_plugin_wrap_color (___paths_plugin_cycle_color) "$input")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
echo "$input"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return $foundStatus
|
|
||||||
end
|
|
||||||
@@ -13,3 +13,52 @@
|
|||||||
|
|
||||||
[advice]
|
[advice]
|
||||||
detachedHead = false
|
detachedHead = false
|
||||||
|
[column]
|
||||||
|
ui = auto
|
||||||
|
[branch]
|
||||||
|
sort = -committerdate
|
||||||
|
[tag]
|
||||||
|
sort = version:refname
|
||||||
|
[init]
|
||||||
|
defaultBranch = main
|
||||||
|
[diff]
|
||||||
|
algorithm = histogram
|
||||||
|
colorMoved = plain
|
||||||
|
mnemonicPrefix = true
|
||||||
|
renames = true
|
||||||
|
[push]
|
||||||
|
default = simple
|
||||||
|
autoSetupRemote = true
|
||||||
|
followTags = true
|
||||||
|
[fetch]
|
||||||
|
prune = true
|
||||||
|
pruneTags = true
|
||||||
|
all = true
|
||||||
|
[help]
|
||||||
|
autocorrect = prompt
|
||||||
|
[commit]
|
||||||
|
verbose = true
|
||||||
|
[rerere]
|
||||||
|
enabled = true
|
||||||
|
autoupdate = true
|
||||||
|
[rebase]
|
||||||
|
autoSquash = true
|
||||||
|
autoStash = true
|
||||||
|
updateRefs = true
|
||||||
|
[merge]
|
||||||
|
conflictStyle = diff3
|
||||||
|
[pull]
|
||||||
|
rebase = true
|
||||||
|
[color "diff-highlight"]
|
||||||
|
oldNormal = red bold
|
||||||
|
oldHighlight = red bold 52
|
||||||
|
newNormal = green bold
|
||||||
|
newHighlight = green bold 22
|
||||||
|
[color "diff"]
|
||||||
|
meta = 11
|
||||||
|
frag = magenta bold
|
||||||
|
func = 146 bold
|
||||||
|
commit = yellow bold
|
||||||
|
old = red bold
|
||||||
|
new = green bold
|
||||||
|
whitespace = red reverse
|
||||||
|
|||||||
0
config/git/local.d/.gitkeep
Normal file
0
config/git/local.d/.gitkeep
Normal file
6
config/goenv/goenvrc
Normal file
6
config/goenv/goenvrc
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# Detect shell
|
||||||
|
if [ -n "$BASH_VERSION" ] || [ -n "$ZSH_VERSION" ]; then
|
||||||
|
export GOENV_PATH_ORDER=front
|
||||||
|
export GOENV_PREPEND_GOPATH=true
|
||||||
|
export GOENV_AUTO_INSTALL=true
|
||||||
|
fi
|
||||||
4
config/goenv/goenvrc.fish
Normal file
4
config/goenv/goenvrc.fish
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
set -gx GOENV_PATH_ORDER front
|
||||||
|
set -gx GOENV_PREPEND_GOPATH true
|
||||||
|
set -gx GOENV_AUTO_INSTALL true
|
||||||
|
|
||||||
@@ -6,12 +6,14 @@ tap "dm3ch/tap"
|
|||||||
tap "doron-cohen/tap"
|
tap "doron-cohen/tap"
|
||||||
tap "gesquive/tap"
|
tap "gesquive/tap"
|
||||||
tap "github/gh"
|
tap "github/gh"
|
||||||
|
tap "golangci/tap"
|
||||||
tap "homebrew/autoupdate"
|
tap "homebrew/autoupdate"
|
||||||
tap "homebrew/bundle"
|
tap "homebrew/bundle"
|
||||||
tap "homebrew/services"
|
tap "homebrew/services"
|
||||||
tap "jesseduffield/lazygit"
|
tap "jesseduffield/lazygit"
|
||||||
tap "k8sgpt-ai/k8sgpt"
|
tap "k8sgpt-ai/k8sgpt"
|
||||||
tap "keith/formulae"
|
tap "keith/formulae"
|
||||||
|
tap "koekeishiya/formulae"
|
||||||
tap "mongodb/brew"
|
tap "mongodb/brew"
|
||||||
tap "nikitabobko/tap"
|
tap "nikitabobko/tap"
|
||||||
tap "pantheon-systems/external"
|
tap "pantheon-systems/external"
|
||||||
@@ -29,6 +31,8 @@ brew "age"
|
|||||||
brew "ca-certificates"
|
brew "ca-certificates"
|
||||||
# Mozilla CA bundle for Python
|
# Mozilla CA bundle for Python
|
||||||
brew "certifi"
|
brew "certifi"
|
||||||
|
# Cryptography and SSL/TLS Toolkit
|
||||||
|
brew "openssl@3"
|
||||||
# Cryptographic recipes and primitives for Python
|
# Cryptographic recipes and primitives for Python
|
||||||
brew "cryptography"
|
brew "cryptography"
|
||||||
# YAML Parser
|
# YAML Parser
|
||||||
@@ -47,8 +51,6 @@ brew "highway"
|
|||||||
brew "imath"
|
brew "imath"
|
||||||
# JPEG image codec that aids compression and decompression
|
# JPEG image codec that aids compression and decompression
|
||||||
brew "jpeg-turbo"
|
brew "jpeg-turbo"
|
||||||
# Library for manipulating PNG images
|
|
||||||
brew "libpng"
|
|
||||||
# Zstandard is a real-time compression algorithm
|
# Zstandard is a real-time compression algorithm
|
||||||
brew "zstd"
|
brew "zstd"
|
||||||
# New file format for still image compression
|
# New file format for still image compression
|
||||||
@@ -87,6 +89,8 @@ brew "coreutils"
|
|||||||
brew "bats-core"
|
brew "bats-core"
|
||||||
# Parser generator
|
# Parser generator
|
||||||
brew "bison"
|
brew "bison"
|
||||||
|
# Freely available high-quality data compressor
|
||||||
|
brew "bzip2"
|
||||||
# Software library to render fonts
|
# Software library to render fonts
|
||||||
brew "freetype"
|
brew "freetype"
|
||||||
# XML-based font configuration API for X Windows
|
# XML-based font configuration API for X Windows
|
||||||
@@ -95,6 +99,8 @@ brew "fontconfig"
|
|||||||
brew "gettext"
|
brew "gettext"
|
||||||
# Core application library for C
|
# Core application library for C
|
||||||
brew "glib"
|
brew "glib"
|
||||||
|
# Binary installation for rust projects
|
||||||
|
brew "cargo-binstall"
|
||||||
# Prevent cloud misconfigurations during build-time for IaC tools
|
# Prevent cloud misconfigurations during build-time for IaC tools
|
||||||
brew "checkov"
|
brew "checkov"
|
||||||
# Human-friendly and fast alternative to cut and (sometimes) awk
|
# Human-friendly and fast alternative to cut and (sometimes) awk
|
||||||
@@ -103,18 +109,20 @@ brew "choose-rust"
|
|||||||
brew "cmake"
|
brew "cmake"
|
||||||
# Get a file from an HTTP, HTTPS or FTP server
|
# Get a file from an HTTP, HTTPS or FTP server
|
||||||
brew "curl"
|
brew "curl"
|
||||||
|
# OpenType text shaping engine
|
||||||
|
brew "harfbuzz"
|
||||||
|
# OWASP dependency-check
|
||||||
|
brew "dependency-check"
|
||||||
# Lightweight DNS forwarder and DHCP server
|
# Lightweight DNS forwarder and DHCP server
|
||||||
brew "dnsmasq"
|
brew "dnsmasq"
|
||||||
# .NET Core
|
|
||||||
brew "dotnet@8", link: true
|
|
||||||
# Spellchecker wrapping library
|
# Spellchecker wrapping library
|
||||||
brew "enchant"
|
brew "enchant"
|
||||||
|
# Command-line tool to interact with exercism.io
|
||||||
|
brew "exercism"
|
||||||
# Perl lib for reading and writing EXIF metadata
|
# Perl lib for reading and writing EXIF metadata
|
||||||
brew "exiftool"
|
brew "exiftool"
|
||||||
# Banner-like program prints strings as ASCII art
|
# Banner-like program prints strings as ASCII art
|
||||||
brew "figlet"
|
brew "figlet"
|
||||||
# Text-based UI library
|
|
||||||
brew "ncurses"
|
|
||||||
# User-friendly command-line shell for UNIX-like operating systems
|
# User-friendly command-line shell for UNIX-like operating systems
|
||||||
brew "fish"
|
brew "fish"
|
||||||
# Lock file during command
|
# Lock file during command
|
||||||
@@ -131,8 +139,6 @@ brew "gd"
|
|||||||
brew "gdu"
|
brew "gdu"
|
||||||
# GitHub command-line tool
|
# GitHub command-line tool
|
||||||
brew "gh"
|
brew "gh"
|
||||||
# OpenType text shaping engine
|
|
||||||
brew "harfbuzz"
|
|
||||||
# Secure hashing function
|
# Secure hashing function
|
||||||
brew "libb2"
|
brew "libb2"
|
||||||
# Framework for layout and rendering of i18n text
|
# Framework for layout and rendering of i18n text
|
||||||
@@ -155,10 +161,10 @@ brew "unbound"
|
|||||||
brew "gnutls"
|
brew "gnutls"
|
||||||
# GNU Pretty Good Privacy (PGP) package
|
# GNU Pretty Good Privacy (PGP) package
|
||||||
brew "gnupg"
|
brew "gnupg"
|
||||||
|
# Go version management
|
||||||
|
brew "goenv"
|
||||||
# Library access to GnuPG
|
# Library access to GnuPG
|
||||||
brew "gpgme"
|
brew "gpgme"
|
||||||
# Open source suite of directory software
|
|
||||||
brew "openldap"
|
|
||||||
# Manage your GnuPG keys with ease!
|
# Manage your GnuPG keys with ease!
|
||||||
brew "gpg-tui"
|
brew "gpg-tui"
|
||||||
# Image manipulation
|
# Image manipulation
|
||||||
@@ -189,22 +195,20 @@ brew "jq"
|
|||||||
brew "json-c"
|
brew "json-c"
|
||||||
# Network authentication protocol
|
# Network authentication protocol
|
||||||
brew "krb5"
|
brew "krb5"
|
||||||
|
# Style and grammar checker
|
||||||
|
brew "languagetool"
|
||||||
# Tool to detect/remediate misconfig and security risks of GitHub/GitLab assets
|
# Tool to detect/remediate misconfig and security risks of GitHub/GitLab assets
|
||||||
brew "legitify"
|
brew "legitify"
|
||||||
# BSD-style licensed readline alternative
|
# BSD-style licensed readline alternative
|
||||||
brew "libedit"
|
brew "libedit"
|
||||||
# Conversion library
|
# Conversion library
|
||||||
brew "libiconv"
|
brew "libiconv"
|
||||||
# Postgres C API library
|
|
||||||
brew "libpq"
|
|
||||||
# Version of the SSL/TLS protocol forked from OpenSSL
|
# Version of the SSL/TLS protocol forked from OpenSSL
|
||||||
brew "libressl"
|
brew "libressl"
|
||||||
# Multi-platform support library with a focus on asynchronous I/O
|
# Multi-platform support library with a focus on asynchronous I/O
|
||||||
brew "libuv"
|
brew "libuv"
|
||||||
# GNOME XML library
|
# GNOME XML library
|
||||||
brew "libxml2"
|
brew "libxml2"
|
||||||
# C library for reading, creating, and modifying zip archives
|
|
||||||
brew "libzip"
|
|
||||||
# Package manager for the Lua programming language
|
# Package manager for the Lua programming language
|
||||||
brew "luarocks"
|
brew "luarocks"
|
||||||
# LZMA-based compression program similar to gzip or bzip2
|
# LZMA-based compression program similar to gzip or bzip2
|
||||||
@@ -219,12 +223,26 @@ brew "ncdu"
|
|||||||
brew "nginx"
|
brew "nginx"
|
||||||
# Port scanning utility for large networks
|
# Port scanning utility for large networks
|
||||||
brew "nmap"
|
brew "nmap"
|
||||||
|
# Platform built on V8 to build network applications
|
||||||
|
brew "node", link: false
|
||||||
# Libraries for security-enabled client and server applications
|
# Libraries for security-enabled client and server applications
|
||||||
brew "nss"
|
brew "nss"
|
||||||
# Cryptography and SSL/TLS Toolkit
|
# Command-line Git information tool
|
||||||
brew "openssl@1.1"
|
brew "onefetch"
|
||||||
|
# Open source suite of directory software
|
||||||
|
brew "openldap"
|
||||||
# ISO-C API and CLI for generating UUIDs
|
# ISO-C API and CLI for generating UUIDs
|
||||||
brew "ossp-uuid"
|
brew "ossp-uuid"
|
||||||
|
# General-purpose scripting language
|
||||||
|
brew "php", link: false
|
||||||
|
# General-purpose scripting language
|
||||||
|
brew "php@8.2", link: true
|
||||||
|
# General-purpose scripting language
|
||||||
|
brew "php@8.3"
|
||||||
|
# Pins GitHub Actions to full hashes and versions
|
||||||
|
brew "pinact"
|
||||||
|
# Execute binaries from Python packages in isolated environments
|
||||||
|
brew "pipx"
|
||||||
# Python version management
|
# Python version management
|
||||||
brew "pyenv"
|
brew "pyenv"
|
||||||
# Migrate pip packages from one Python version to another
|
# Migrate pip packages from one Python version to another
|
||||||
@@ -239,8 +257,12 @@ brew "ruby-build"
|
|||||||
brew "rbenv"
|
brew "rbenv"
|
||||||
# Generate C-based recognizers from regular expressions
|
# Generate C-based recognizers from regular expressions
|
||||||
brew "re2c"
|
brew "re2c"
|
||||||
|
# Rust toolchain installer
|
||||||
|
brew "rustup"
|
||||||
# Static analysis and lint tool, for (ba)sh scripts
|
# Static analysis and lint tool, for (ba)sh scripts
|
||||||
brew "shellcheck"
|
brew "shellcheck"
|
||||||
|
# User interface to the TELNET protocol
|
||||||
|
brew "telnet"
|
||||||
# Send macOS User Notifications from the command-line
|
# Send macOS User Notifications from the command-line
|
||||||
brew "terminal-notifier"
|
brew "terminal-notifier"
|
||||||
# Tool which checks for the support of TLS/SSL ciphers and flaws
|
# Tool which checks for the support of TLS/SSL ciphers and flaws
|
||||||
@@ -273,8 +295,12 @@ brew "cormacrelf/tap/dark-notify"
|
|||||||
brew "doron-cohen/tap/antidot"
|
brew "doron-cohen/tap/antidot"
|
||||||
# lets you quickly switch between multiple git user profiles
|
# lets you quickly switch between multiple git user profiles
|
||||||
brew "gesquive/tap/git-user"
|
brew "gesquive/tap/git-user"
|
||||||
|
# Simple hotkey-daemon for macOS.
|
||||||
|
brew "koekeishiya/formulae/skhd"
|
||||||
# Automated code review tool integrated with any code analysis tools regardless of programming language.
|
# Automated code review tool integrated with any code analysis tools regardless of programming language.
|
||||||
brew "reviewdog/tap/reviewdog"
|
brew "reviewdog/tap/reviewdog"
|
||||||
|
# Igbinary PHP extension
|
||||||
|
brew "shivammathur/extensions/igbinary@8.3"
|
||||||
# Imagick PHP extension
|
# Imagick PHP extension
|
||||||
brew "shivammathur/extensions/imagick@8.3"
|
brew "shivammathur/extensions/imagick@8.3"
|
||||||
# Mcrypt PHP extension
|
# Mcrypt PHP extension
|
||||||
@@ -290,23 +316,19 @@ brew "shivammathur/extensions/uuid@8.3"
|
|||||||
# Yaml PHP extension
|
# Yaml PHP extension
|
||||||
brew "shivammathur/extensions/yaml@8.3"
|
brew "shivammathur/extensions/yaml@8.3"
|
||||||
# General-purpose scripting language
|
# General-purpose scripting language
|
||||||
brew "shivammathur/php/php"
|
|
||||||
# General-purpose scripting language
|
|
||||||
brew "shivammathur/php/php-debug"
|
brew "shivammathur/php/php-debug"
|
||||||
# Find & fix known vulnerabilities in open-source dependencies
|
# General-purpose scripting language
|
||||||
brew "snyk/tap/snyk"
|
brew "shivammathur/php/php@8.2-debug"
|
||||||
# Command-line interface for 1Password
|
# Command-line interface for 1Password
|
||||||
cask "1password-cli"
|
cask "1password-cli"
|
||||||
# AeroSpace is an i3-like tiling window manager for macOS
|
|
||||||
cask "aerospace"
|
|
||||||
# Text editor
|
|
||||||
cask "coda"
|
|
||||||
# Universal database tool and SQL client
|
# Universal database tool and SQL client
|
||||||
cask "dbeaver-community"
|
cask "dbeaver-community"
|
||||||
# Database version management tool
|
# Database version management tool
|
||||||
cask "dbngin"
|
cask "dbngin"
|
||||||
# App to build and share containerised applications and microservices
|
# App to build and share containerised applications and microservices
|
||||||
cask "docker"
|
cask "docker"
|
||||||
|
# Calendar software
|
||||||
|
cask "fantastical"
|
||||||
cask "font-jetbrains-mono"
|
cask "font-jetbrains-mono"
|
||||||
cask "font-jetbrains-mono-nerd-font"
|
cask "font-jetbrains-mono-nerd-font"
|
||||||
cask "font-open-sans"
|
cask "font-open-sans"
|
||||||
@@ -326,8 +348,6 @@ cask "ngrok"
|
|||||||
cask "notunes"
|
cask "notunes"
|
||||||
# Knowledge base that works on top of a local folder of plain text Markdown files
|
# Knowledge base that works on top of a local folder of plain text Markdown files
|
||||||
cask "obsidian"
|
cask "obsidian"
|
||||||
# Display image info and preview unsupported formats in QuickLook
|
|
||||||
cask "qlimagesize"
|
|
||||||
# Quick Look generator for Markdown files
|
# Quick Look generator for Markdown files
|
||||||
cask "qlmarkdown"
|
cask "qlmarkdown"
|
||||||
# Quick Look plugin for plaintext files without an extension
|
# Quick Look plugin for plaintext files without an extension
|
||||||
|
|||||||
@@ -1,71 +1,192 @@
|
|||||||
"" Source your .vimrc
|
"" Source your .vimrc
|
||||||
"source ~/.vimrc
|
source $HOME/.dotfiles/config/vim/vimrc
|
||||||
|
|
||||||
"" -- Suggested options --
|
" https://github.com/ville6000/dotfiles/blob/main/vimrc
|
||||||
" Show a few lines of context around the cursor. Note that this makes the
|
" To get a list of Actions run `:actionlist `
|
||||||
" text scroll if you mouse-click near the start or end of the window.
|
let mapleader = "\<SPACE>"
|
||||||
set scrolloff=5
|
|
||||||
|
set clipboard+=unnamed
|
||||||
|
|
||||||
|
set ideajoin
|
||||||
|
set ideamarks
|
||||||
|
set idearefactormode=normal
|
||||||
|
|
||||||
|
" Map esc to :noh
|
||||||
|
map <esc> :noh<cr>
|
||||||
|
|
||||||
|
nmap <leader>j :tabnext<CR>
|
||||||
|
nmap <leader>k :tabprevious<CR>
|
||||||
|
|
||||||
|
nmap <leader>l b #<CR>
|
||||||
|
:nmap <c-o> <Action>(Back)
|
||||||
|
:nmap <c-i> <Action>(Forward)
|
||||||
|
:map <leader>H <Action>(MethodUp)
|
||||||
|
:map <leader>L <Action>(MethodDown)
|
||||||
|
:map <leader>o <Action>(FileStructurePopup)
|
||||||
|
:map <leader>m <Action>(ShowIntentionActions)
|
||||||
|
|
||||||
|
nmap <leader>ss <Action>(GotoSymbol)
|
||||||
|
|
||||||
|
" File management and navigation commands
|
||||||
|
nmap <leader>fl <Action>(RecentLocations)
|
||||||
|
nmap <leader>fc <Action>(FindInPath)
|
||||||
|
nmap <leader>fr <Action>(RecentFiles)
|
||||||
|
nmap <leader>fe :NERDTreeToggle<CR>
|
||||||
|
nmap <Leader>fu :action FindUsages<CR>
|
||||||
|
nmap <Leader>ff :action GotoFile<CR>
|
||||||
|
nmap <leader>fi <Action>(SelectIn)
|
||||||
|
nmap <leader>fp <Action>(ReplaceInPath)
|
||||||
|
nmap <leader>fo <Action>(OpenFile)
|
||||||
|
nmap <leader>fs <Action>(ManageRecentProjects)
|
||||||
|
nmap <leader>fw <Action>(CloseActiveTab)
|
||||||
|
|
||||||
|
nmap <Leader>sr :action RecentFiles<CR>
|
||||||
|
nmap <Leader>se :action SearchEverywhere<CR>
|
||||||
|
nmap <leader>st <Action>(TextSearchAction)
|
||||||
|
nmap <leader>ss <Action>(GotoSymbol)
|
||||||
|
nmap <leader>sa <Action>(GotoAction)
|
||||||
|
|
||||||
|
" Find text
|
||||||
|
nmap <Leader>ft :action FindText<CR>
|
||||||
|
|
||||||
|
nmap <leader>dx <Action>(Debug)
|
||||||
|
nmap <leader>dc <Action>(ContextDebug)
|
||||||
|
nmap <leader>dv <Action>(ViewBreakpoints)
|
||||||
|
nmap <leader>de <Action>(EditBreakpoint)
|
||||||
|
nmap <leader>dm <Action>(XDebugger.MuteBreakpoints)
|
||||||
|
nmap <leader>dt <Action>(ToggleLineBreakpoint)
|
||||||
|
nmap <leader>dC <Action>(RunToCursor)
|
||||||
|
nmap <leader>di <Action>(StepInto)
|
||||||
|
nmap <leader>do <Action>(StepOver)
|
||||||
|
nmap <leader>dr <Action>(Resume)
|
||||||
|
nmap <leader>dR <Action>(EvaluateExpression)
|
||||||
|
nmap <leader>dw <Action>(ActivateDebugToolWindow)
|
||||||
|
|
||||||
|
nmap <leader>gd <Action>(GotoDeclaration)
|
||||||
|
nmap <leader>go <Action>(GotoSuperMethod)
|
||||||
|
nmap <leader>gD <Action>(GotoTypeDeclaration)
|
||||||
|
nmap <leader>gi <Action>(GotoImplementation)
|
||||||
|
nmap <leader>gT <Action>(GotoTest)
|
||||||
|
nmap <leader>gp :action VcsShowPrevChangeMarker<CR>
|
||||||
|
nmap <leader>gn :action VcsShowNextChangeMarker<CR>
|
||||||
|
|
||||||
|
" Trigger tests
|
||||||
|
map <Leader>tt <Action>(RiderUnitTestRunContextAction)
|
||||||
|
nmap <Leader>cc :action CommentByLineComment<CR>
|
||||||
|
|
||||||
|
nmap <leader>lf <Action>(ReformatCode)
|
||||||
|
nmap <leader>li <Action>(InspectCode)
|
||||||
|
:map <leader>lr <Action>(RenameElement)
|
||||||
|
nmap <leader>ll <Action>(Refactorings.QuickListPopupAction)
|
||||||
|
|
||||||
|
nmap <leader>Gc <Action>(Vcs.Show.Local.Changes)
|
||||||
|
nmap <leader>Ga <Action>(Annotate)
|
||||||
|
|
||||||
|
:map <leader>gh <Action>(ShowHoverInfo)
|
||||||
|
|
||||||
|
nmap <Leader>vv :vsplit<CR>
|
||||||
|
nmap <Leader>vs :split<CR>
|
||||||
|
|
||||||
|
nmap <Leader>ww :action HideAllWindows<CR>
|
||||||
|
nmap <Leader>wt :action ActivateTerminalToolWindow<CR>
|
||||||
|
nmap <Leader>wd :action ActivateDatabaseToolWindow<CR>
|
||||||
|
|
||||||
|
" Open project tree window
|
||||||
|
nmap <Leader>t :action ActivateProjectToolWindow<CR>
|
||||||
|
|
||||||
|
nnoremap <leader>cf :action ReformatCode<CR>
|
||||||
|
|
||||||
|
" Bookmarks
|
||||||
|
nmap <leader>bm <Action>(Bookmarks)
|
||||||
|
nmap <leader>bs <Action>(ShowBookmarks)
|
||||||
|
nmap <leader>bt <Action>(ActivateBookmarksToolWindow)
|
||||||
|
nmap <leader>bb <Action>(ToggleBookmark)
|
||||||
|
nmap <leader>be <Action>(EditBookmark)
|
||||||
|
nmap <leader>bp <Action>(GotoPreviousBookmark)
|
||||||
|
nmap <leader>bn <Action>(GotoNextBookmark)
|
||||||
|
|
||||||
|
nnoremap ge :action GotoNextError<CR>
|
||||||
|
nnoremap gE :action GotoPreviousError<CR>
|
||||||
|
|
||||||
|
" Turn off Copilot
|
||||||
|
nmap <leader>cp :action Copilot.Toggle<CR>
|
||||||
|
|
||||||
|
" Navigate back
|
||||||
|
nmap <leader> <C-o>
|
||||||
|
|
||||||
|
" mark as a global mark/
|
||||||
|
nnoremap ma mA
|
||||||
|
nnoremap mb mB
|
||||||
|
nnoremap mc mC
|
||||||
|
nnoremap md mD
|
||||||
|
nnoremap me mE
|
||||||
|
nnoremap mf mG
|
||||||
|
nnoremap mh mH
|
||||||
|
nnoremap mi mI
|
||||||
|
nnoremap mj mJ
|
||||||
|
nnoremap mk mK
|
||||||
|
nnoremap ml mL
|
||||||
|
nnoremap mm mM
|
||||||
|
nnoremap mn mN
|
||||||
|
nnoremap mo mO
|
||||||
|
nnoremap mp mP
|
||||||
|
nnoremap mq mQ
|
||||||
|
nnoremap mr mR
|
||||||
|
nnoremap ms mS
|
||||||
|
nnoremap mt mT
|
||||||
|
nnoremap mu mU
|
||||||
|
nnoremap mv mV
|
||||||
|
nnoremap mw mW
|
||||||
|
nnoremap mx mX
|
||||||
|
nnoremap my mY
|
||||||
|
nnoremap mz mZ
|
||||||
|
|
||||||
|
" go to global marks
|
||||||
|
nnoremap 'a `A
|
||||||
|
nnoremap 'b `B
|
||||||
|
nnoremap 'c `C
|
||||||
|
nnoremap 'd `D
|
||||||
|
nnoremap 'e `E
|
||||||
|
nnoremap 'f `G
|
||||||
|
nnoremap 'h `H
|
||||||
|
nnoremap 'i `I
|
||||||
|
nnoremap 'j `J
|
||||||
|
nnoremap 'k `K
|
||||||
|
nnoremap 'l `L
|
||||||
|
nnoremap 'm `M
|
||||||
|
nnoremap 'n `N
|
||||||
|
nnoremap 'o `O
|
||||||
|
nnoremap 'p `P
|
||||||
|
nnoremap 'q `Q
|
||||||
|
nnoremap 'r `R
|
||||||
|
nnoremap 's `S
|
||||||
|
nnoremap 't `T
|
||||||
|
nnoremap 'u `U
|
||||||
|
nnoremap 'v `V
|
||||||
|
nnoremap 'w `W
|
||||||
|
nnoremap 'x `X
|
||||||
|
nnoremap 'y `Y
|
||||||
|
nnoremap 'z `Z
|
||||||
|
|
||||||
|
" ---
|
||||||
|
|
||||||
|
set cursorline " Highlight current line
|
||||||
|
set nocompatible " disable compatibility mode with vi
|
||||||
|
filetype off " disable filetype detection (but re-enable later, see below)
|
||||||
|
set undolevels=1000 " Number of undo levels
|
||||||
|
set backspace=indent,eol,start " Backspace behaviour
|
||||||
|
|
||||||
" Don't use Ex mode, use Q for formatting.
|
" Don't use Ex mode, use Q for formatting.
|
||||||
map Q gq
|
map Q gq
|
||||||
|
|
||||||
|
|
||||||
"" -- Map IDE actions to IdeaVim -- https://jb.gg/abva4t
|
|
||||||
"" Map \r to the Reformat Code action
|
|
||||||
"map \r <Action>(ReformatCode)
|
|
||||||
|
|
||||||
"" Map <leader>d to start debug
|
|
||||||
"map <leader>d <Action>(Debug)
|
|
||||||
|
|
||||||
"" Map \b to toggle the breakpoint on the current line
|
|
||||||
"map \b <Action>(ToggleLineBreakpoint)
|
|
||||||
|
|
||||||
|
|
||||||
" Find more examples here: https://jb.gg/share-ideavimrc
|
|
||||||
|
|
||||||
" https://github.com/ville6000/dotfiles/blob/main/vimrc
|
|
||||||
set nocompatible " disable compatibility mode with vi
|
|
||||||
filetype off " disable filetype detection (but re-enable later, see below)
|
|
||||||
|
|
||||||
set encoding=utf-8 " UTF-8
|
|
||||||
set number " Show line numbers
|
|
||||||
set laststatus=2 " Always show statusline (even with only single window)
|
|
||||||
set showmatch " Highlight matching brace
|
|
||||||
set visualbell " Use visual bell (no beeping)
|
|
||||||
set hlsearch " Highlight all search results
|
|
||||||
set smartcase " Enable smart-case search
|
|
||||||
set ignorecase " Always case-insensitive
|
|
||||||
set incsearch " Searches for strings incrementally
|
|
||||||
set cindent " Use 'C' style program indenting
|
|
||||||
set expandtab " Use spaces instead of tabs
|
|
||||||
set shiftwidth=4 " Number of auto-indent spaces
|
|
||||||
set smartindent " Enable smart-indent
|
|
||||||
set smarttab " Enable smart-tabs
|
|
||||||
set softtabstop=4 " Number of spaces per Tab
|
|
||||||
set ruler " Show row and column ruler information
|
|
||||||
set cursorline " Highlight current line
|
|
||||||
set undolevels=1000 " Number of undo levels
|
|
||||||
set backspace=indent,eol,start " Backspace behaviour
|
|
||||||
set so=5
|
|
||||||
|
|
||||||
" move vertically by visual line (don't skip wrapped lines)
|
|
||||||
nmap j gj
|
|
||||||
nmap k gk
|
|
||||||
|
|
||||||
syntax enable
|
syntax enable
|
||||||
filetype plugin indent on
|
filetype plugin indent on
|
||||||
|
|
||||||
call plug#begin('~/.vim/plugged')
|
" call plug#begin('~/.config/vim/plugged')
|
||||||
|
" Plug 'ayu-theme/ayu-vim'
|
||||||
Plug 'ayu-theme/ayu-vim'
|
" call plug#end()
|
||||||
Plug 'ctrlpvim/ctrlp.vim'
|
|
||||||
|
|
||||||
call plug#end()
|
|
||||||
|
|
||||||
set termguicolors
|
set termguicolors
|
||||||
set background=dark
|
|
||||||
let ayucolor="dark"
|
|
||||||
colorscheme ayu
|
|
||||||
|
|
||||||
if has('gui_running')
|
if has('gui_running')
|
||||||
set macligatures
|
set macligatures
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# EditorConfig is awesome: https://editorconfig.org
|
# EditorConfig is awesome: https://editorconfig.org
|
||||||
|
|
||||||
# top-most EditorConfig file
|
# top-most EditorConfig file
|
||||||
root = true
|
root = false
|
||||||
|
|
||||||
[*]
|
[*]
|
||||||
end_of_line = lf
|
end_of_line = lf
|
||||||
@@ -18,3 +18,7 @@ trim_trailing_whitespace = false
|
|||||||
|
|
||||||
[*.json]
|
[*.json]
|
||||||
max_line_length = off
|
max_line_length = off
|
||||||
|
|
||||||
|
[*.lua]
|
||||||
|
max_line_length = 90
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
column_width = 80
|
column_width = 90
|
||||||
line_endings = "Unix"
|
line_endings = "Unix"
|
||||||
indent_type = "Spaces"
|
indent_type = "Spaces"
|
||||||
indent_width = 2
|
indent_width = 2
|
||||||
|
|||||||
2
config/nvim/ftdetect/env.vim
Normal file
2
config/nvim/ftdetect/env.vim
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
autocmd BufRead,BufNewFile *.env set ft=env
|
||||||
|
autocmd BufRead,BufNewFile *.env.* set ft=env
|
||||||
@@ -28,10 +28,7 @@ end
|
|||||||
vim.opt.rtp:prepend(lazypath)
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
-- ── Add ~/.local/bin to the PATH ────────────────────────────────────
|
-- ── Add ~/.local/bin to the PATH ────────────────────────────────────
|
||||||
vim.fn.setenv(
|
vim.fn.setenv('PATH', vim.fn.expand '$HOME/.local/bin' .. ':' .. vim.fn.expand '$PATH')
|
||||||
'PATH',
|
|
||||||
vim.fn.expand '$HOME/.local/bin' .. ':' .. vim.fn.expand '$PATH'
|
|
||||||
)
|
|
||||||
|
|
||||||
require 'options'
|
require 'options'
|
||||||
require 'autogroups'
|
require 'autogroups'
|
||||||
@@ -64,8 +61,8 @@ require('lazy').setup(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
require('nvm-default').setup()
|
-- require('nvm-default').setup()
|
||||||
|
|
||||||
require 'keymaps'
|
require 'keymaps'
|
||||||
|
|
||||||
-- vim: ts=2 sts=2 sw=2 et
|
-- vim: set ts=2 sts=2 sw=2 wrap et :
|
||||||
|
|||||||
@@ -21,9 +21,7 @@ autocmd({ 'BufEnter', 'BufWinEnter', 'TabEnter' }, {
|
|||||||
callback = function()
|
callback = function()
|
||||||
local max_line_count = vim.fn.line '$'
|
local max_line_count = vim.fn.line '$'
|
||||||
-- Only adjust if the file is large enough to matter
|
-- Only adjust if the file is large enough to matter
|
||||||
if max_line_count > 99 then
|
if max_line_count > 99 then vim.opt.numberwidth = #tostring(max_line_count) + 1 end
|
||||||
vim.opt.numberwidth = #tostring(max_line_count) + 1
|
|
||||||
end
|
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -104,5 +102,3 @@ autocmd({ 'BufRead', 'BufNewFile' }, {
|
|||||||
},
|
},
|
||||||
command = 'set filetype=sshconfig',
|
command = 'set filetype=sshconfig',
|
||||||
})
|
})
|
||||||
|
|
||||||
-- vim: ts=2 sts=2 sw=2 et
|
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
-- vim: set ft=lua ts=2 sw=2 tw=0 et cc=130 :
|
|
||||||
|
|
||||||
require 'utils'
|
require 'utils'
|
||||||
|
|
||||||
-- ╭─────────────────────────────────────────────────────────╮
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
@@ -20,16 +18,8 @@ K.n('<C-w>+', ':resize +10<CR>', { desc = 'H Resize +' })
|
|||||||
K.n('<C-w>=', '<C-w>=', { desc = 'Equal Size Splits' })
|
K.n('<C-w>=', '<C-w>=', { desc = 'Equal Size Splits' })
|
||||||
|
|
||||||
-- ── Deal with word wrap ─────────────────────────────────────────────
|
-- ── Deal with word wrap ─────────────────────────────────────────────
|
||||||
K.n(
|
K.n('k', "v:count == 0 ? 'gk' : 'k'", { desc = 'Move up', noremap = true, expr = true })
|
||||||
'k',
|
K.n('j', "v:count == 0 ? 'gj' : 'j'", { desc = 'Move down', noremap = true, expr = true })
|
||||||
"v:count == 0 ? 'gk' : 'k'",
|
|
||||||
{ desc = 'Move up', noremap = true, expr = true }
|
|
||||||
)
|
|
||||||
K.n(
|
|
||||||
'j',
|
|
||||||
"v:count == 0 ? 'gj' : 'j'",
|
|
||||||
{ desc = 'Move down', noremap = true, expr = true }
|
|
||||||
)
|
|
||||||
|
|
||||||
-- ── Text manipulation ───────────────────────────────────────────────
|
-- ── Text manipulation ───────────────────────────────────────────────
|
||||||
K.d('<', { 'n', 'v' }, '<gv', 'Indent Left')
|
K.d('<', { 'n', 'v' }, '<gv', 'Indent Left')
|
||||||
@@ -111,12 +101,10 @@ K.nl('cbt', '<Cmd>CBllline<CR>', 'CB: Titled Line')
|
|||||||
-- unless it's a generic operation like searching or finding buffers
|
-- unless it's a generic operation like searching or finding buffers
|
||||||
|
|
||||||
local fuzzy_search = function()
|
local fuzzy_search = function()
|
||||||
require('telescope.builtin').find_files(
|
require('telescope.builtin').find_files(require('telescope.themes').get_dropdown {
|
||||||
require('telescope.themes').get_dropdown {
|
winblend = 20,
|
||||||
winblend = 20,
|
previewer = true,
|
||||||
previewer = true,
|
})
|
||||||
}
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local lazy_plugins = function()
|
local lazy_plugins = function()
|
||||||
@@ -159,9 +147,7 @@ K.nl('tn', ':Noice dismiss<cr>', 'Noice: Dismiss Notification')
|
|||||||
-- Convention is 'q' followed by the operation
|
-- Convention is 'q' followed by the operation
|
||||||
K.nl('qf', ':q<CR>', 'Quicker close split')
|
K.nl('qf', ':q<CR>', 'Quicker close split')
|
||||||
K.nl('qq', function()
|
K.nl('qq', function()
|
||||||
if vim.fn.confirm('Force save and quit?', '&Yes\n&No', 2) == 1 then
|
if vim.fn.confirm('Force save and quit?', '&Yes\n&No', 2) == 1 then vim.cmd 'wq!' end
|
||||||
vim.cmd 'wq!'
|
|
||||||
end
|
|
||||||
end, 'Quit with force saving')
|
end, 'Quit with force saving')
|
||||||
K.nl('qw', ':wq<CR>', 'Write and quit')
|
K.nl('qw', ':wq<CR>', 'Write and quit')
|
||||||
K.nl('qQ', function()
|
K.nl('qQ', function()
|
||||||
|
|||||||
@@ -71,16 +71,14 @@ function M.setup(opts)
|
|||||||
local nvm_path = options.nvm_path
|
local nvm_path = options.nvm_path
|
||||||
local node_version = run_command(
|
local node_version = run_command(
|
||||||
string.format('. %s/nvm.sh && nvm version default', nvm_path)
|
string.format('. %s/nvm.sh && nvm version default', nvm_path)
|
||||||
) or run_command(string.format('. %s/nvm.sh && nvm version node', nvm_path))
|
) or run_command(string.format('. %s/nvm.sh && nvm version node', nvm_path)) or nil
|
||||||
|
|
||||||
if node_version and node_version:match '^v' then
|
if node_version and node_version:match '^v' then
|
||||||
-- Set vim.g.node_host_prog and vim.g.copilot_node_command
|
-- Set vim.g.node_host_prog and vim.g.copilot_node_command
|
||||||
local current_nvm_version_path =
|
local current_nvm_version_path =
|
||||||
string.format('%s/versions/node/%s', nvm_path, node_version)
|
string.format('%s/versions/node/%s', nvm_path, node_version)
|
||||||
local current_nvm_node_bin_path =
|
local current_nvm_node_bin_path = string.format('%s/bin', current_nvm_version_path)
|
||||||
string.format('%s/bin', current_nvm_version_path)
|
local current_nvm_node_bin = string.format('%s/node', current_nvm_node_bin_path)
|
||||||
local current_nvm_node_bin =
|
|
||||||
string.format('%s/node', current_nvm_node_bin_path)
|
|
||||||
local neovim_node_host_bin_path =
|
local neovim_node_host_bin_path =
|
||||||
string.format('%s/neovim-node-host', current_nvm_node_bin_path)
|
string.format('%s/neovim-node-host', current_nvm_node_bin_path)
|
||||||
|
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ local a = vim.api -- A table to store API functions
|
|||||||
g.mapleader = ' ' -- Space as the leader key
|
g.mapleader = ' ' -- Space as the leader key
|
||||||
g.maplocalleader = ' ' -- Space as the local leader key
|
g.maplocalleader = ' ' -- Space as the local leader key
|
||||||
|
|
||||||
g.colors_theme = 'tokyonight' -- Set the colorscheme
|
g.colors_theme = 'pencil' -- Set the colorscheme
|
||||||
g.colors_variant_light = 'tokyonight-day' -- Set the light variant
|
-- g.colors_variant_light = 'tokyonight-day' -- Set the light variant
|
||||||
g.colors_variant_dark = 'tokyonight-storm' -- Set the dark variant
|
-- g.colors_variant_dark = 'tokyonight-storm' -- Set the dark variant
|
||||||
|
|
||||||
g.editorconfig = true -- Make sure editorconfig support is enabled
|
g.editorconfig = true -- Make sure editorconfig support is enabled
|
||||||
g.loaded_perl_provider = 0 -- Disable perl provider
|
g.loaded_perl_provider = 0 -- Disable perl provider
|
||||||
@@ -26,6 +26,7 @@ g.loaded_java_provider = 0 -- Disable java provider
|
|||||||
-- Most of the good defaults are provided by `mini.basics`
|
-- Most of the good defaults are provided by `mini.basics`
|
||||||
-- See: lua/plugins/mini.lua
|
-- See: lua/plugins/mini.lua
|
||||||
o.confirm = true -- Confirm before closing unsaved buffers
|
o.confirm = true -- Confirm before closing unsaved buffers
|
||||||
|
o.dictionary = '/usr/share/dict/words' -- Add system dictionary
|
||||||
o.ignorecase = true -- Ignore case in search patterns
|
o.ignorecase = true -- Ignore case in search patterns
|
||||||
o.inccommand = 'split' -- Preview substitutions live, as you type!
|
o.inccommand = 'split' -- Preview substitutions live, as you type!
|
||||||
o.list = true -- Show invisible characters
|
o.list = true -- Show invisible characters
|
||||||
@@ -37,7 +38,7 @@ o.scrolloff = 8 -- Show context around cursor
|
|||||||
o.sidescrolloff = 8 -- Show context around cursor
|
o.sidescrolloff = 8 -- Show context around cursor
|
||||||
o.signcolumn = 'yes' -- Keep signcolumn on by default
|
o.signcolumn = 'yes' -- Keep signcolumn on by default
|
||||||
o.spell = true -- Enable spell checking
|
o.spell = true -- Enable spell checking
|
||||||
o.spelllang = 'en_us' -- Set the spell checking language
|
o.spelllang = 'en_gb,en_us' -- Set the spell checking language
|
||||||
o.splitbelow = true -- split to the bottom
|
o.splitbelow = true -- split to the bottom
|
||||||
o.splitright = true -- vsplit to the right
|
o.splitright = true -- vsplit to the right
|
||||||
o.termguicolors = true -- Enable GUI colors
|
o.termguicolors = true -- Enable GUI colors
|
||||||
@@ -63,4 +64,7 @@ vim.schedule(function()
|
|||||||
o.clipboard = c
|
o.clipboard = c
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
-- xiyaowong/transparent.nvim
|
||||||
|
vim.g.transparent_enabled = true
|
||||||
|
|
||||||
-- vim: ts=2 sts=2 sw=2 et
|
-- vim: ts=2 sts=2 sw=2 et
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ return {
|
|||||||
-- https:/github.com/saghen/blink.cmp
|
-- https:/github.com/saghen/blink.cmp
|
||||||
{
|
{
|
||||||
'saghen/blink.cmp',
|
'saghen/blink.cmp',
|
||||||
version = '*',
|
version = '1.*',
|
||||||
lazy = false, -- lazy loading handled internally
|
lazy = false, -- lazy loading handled internally
|
||||||
dependencies = {
|
dependencies = {
|
||||||
-- Compatibility layer for using nvim-cmp sources on blink.cmp
|
-- Compatibility layer for using nvim-cmp sources on blink.cmp
|
||||||
@@ -58,10 +58,10 @@ return {
|
|||||||
-- 'default' for mappings similar to built-in completion
|
-- 'default' for mappings similar to built-in completion
|
||||||
-- 'super-tab' for mappings similar to vscode (tab to accept, arrow keys to navigate)
|
-- 'super-tab' for mappings similar to vscode (tab to accept, arrow keys to navigate)
|
||||||
-- 'enter' for mappings similar to 'super-tab' but with 'enter' to accept
|
-- 'enter' for mappings similar to 'super-tab' but with 'enter' to accept
|
||||||
-- see the "default configuration" section below for full documentation on how to define
|
-- see the "default configuration" section below for full documentation on how to
|
||||||
-- your own keymap.
|
-- define your own keymap.
|
||||||
keymap = {
|
keymap = {
|
||||||
preset = 'super-tab',
|
preset = 'default',
|
||||||
-- Use Ctrl-x to trigger auto completion
|
-- Use Ctrl-x to trigger auto completion
|
||||||
['<C-x>'] = { 'show', 'show_documentation', 'hide_documentation' },
|
['<C-x>'] = { 'show', 'show_documentation', 'hide_documentation' },
|
||||||
},
|
},
|
||||||
@@ -86,7 +86,8 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
documentation = {
|
documentation = {
|
||||||
auto_show = true,
|
auto_show = false,
|
||||||
|
auto_show_delay_ms = 500,
|
||||||
},
|
},
|
||||||
ghost_text = {
|
ghost_text = {
|
||||||
enabled = false,
|
enabled = false,
|
||||||
@@ -97,12 +98,12 @@ return {
|
|||||||
-- elsewhere in your config, without redefining it, via `opts_extend`
|
-- elsewhere in your config, without redefining it, via `opts_extend`
|
||||||
sources = {
|
sources = {
|
||||||
default = {
|
default = {
|
||||||
'lazydev',
|
|
||||||
'lsp',
|
'lsp',
|
||||||
'snippets',
|
|
||||||
'copilot',
|
'copilot',
|
||||||
'path',
|
'path',
|
||||||
|
'snippets',
|
||||||
'buffer',
|
'buffer',
|
||||||
|
'lazydev',
|
||||||
},
|
},
|
||||||
providers = {
|
providers = {
|
||||||
copilot = {
|
copilot = {
|
||||||
@@ -118,6 +119,15 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
-- Blink.cmp includes an optional, recommended rust fuzzy matcher,
|
||||||
|
-- which automatically downloads a prebuilt binary when enabled.
|
||||||
|
--
|
||||||
|
-- By default, we use the Lua implementation instead, but you may enable
|
||||||
|
-- the rust implementation via `'prefer_rust_with_warning'`
|
||||||
|
--
|
||||||
|
-- See :h blink-cmp-config-fuzzy for more information
|
||||||
|
fuzzy = { implementation = 'lua' },
|
||||||
|
|
||||||
-- experimental signature help support
|
-- experimental signature help support
|
||||||
signature = { enabled = true },
|
signature = { enabled = true },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,17 +1,9 @@
|
|||||||
return {
|
return {
|
||||||
-- A better annotation generator.
|
|
||||||
-- Supports multiple languages and annotation conventions.
|
|
||||||
-- https://github.com/danymat/neogen
|
|
||||||
{
|
|
||||||
'danymat/neogen',
|
|
||||||
version = '*',
|
|
||||||
opts = { enabled = true, snippet_engine = 'luasnip' },
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Terminal manager for (neo)vim
|
-- Terminal manager for (neo)vim
|
||||||
-- https://github.com/voldikss/vim-floaterm
|
-- https://github.com/voldikss/vim-floaterm
|
||||||
{
|
{
|
||||||
'voldikss/vim-floaterm',
|
'voldikss/vim-floaterm',
|
||||||
|
lazy = true,
|
||||||
cmd = { 'FloatermToggle' },
|
cmd = { 'FloatermToggle' },
|
||||||
init = function()
|
init = function()
|
||||||
vim.g.floaterm_width = 0.8
|
vim.g.floaterm_width = 0.8
|
||||||
@@ -49,34 +41,6 @@ return {
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Cloak allows you to overlay *'s over defined patterns in defined files.
|
|
||||||
-- https://github.com/laytan/cloak.nvim
|
|
||||||
{
|
|
||||||
'laytan/cloak.nvim',
|
|
||||||
version = '*',
|
|
||||||
opts = {
|
|
||||||
enabled = true,
|
|
||||||
cloak_character = '*',
|
|
||||||
-- The applied highlight group (colors) on the cloaking, see `:h highlight`.
|
|
||||||
highlight_group = 'Comment',
|
|
||||||
patterns = {
|
|
||||||
{
|
|
||||||
-- Match any file starting with ".env".
|
|
||||||
-- This can be a table to match multiple file patterns.
|
|
||||||
file_pattern = {
|
|
||||||
'.env*',
|
|
||||||
'wrangler.toml',
|
|
||||||
'.dev.vars',
|
|
||||||
},
|
|
||||||
-- Match an equals sign and any character after it.
|
|
||||||
-- This can also be a table of patterns to cloak,
|
|
||||||
-- example: cloak_pattern = { ":.+", "-.+" } for yaml files.
|
|
||||||
cloak_pattern = '=.+',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- projectionist.vim: Granular project configuration
|
-- projectionist.vim: Granular project configuration
|
||||||
-- https://github.com/tpope/vim-projectionist
|
-- https://github.com/tpope/vim-projectionist
|
||||||
{
|
{
|
||||||
@@ -150,21 +114,7 @@ return {
|
|||||||
{
|
{
|
||||||
'whatyouhide/vim-textobj-xmlattr',
|
'whatyouhide/vim-textobj-xmlattr',
|
||||||
dependencies = { 'kana/vim-textobj-user' },
|
dependencies = { 'kana/vim-textobj-user' },
|
||||||
},
|
ft = { 'html', 'xml', 'javascriptreact', 'typescriptreact', 'vue' },
|
||||||
|
|
||||||
-- Describe the regexp under the cursor
|
|
||||||
-- https://github.com/bennypowers/nvim-regexplainer
|
|
||||||
{
|
|
||||||
'bennypowers/nvim-regexplainer',
|
|
||||||
event = 'BufEnter',
|
|
||||||
dependencies = {
|
|
||||||
'nvim-treesitter/nvim-treesitter',
|
|
||||||
'MunifTanjim/nui.nvim',
|
|
||||||
},
|
|
||||||
opts = {
|
|
||||||
-- automatically show the explainer when the cursor enters a regexp
|
|
||||||
auto = true,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Clarify and beautify your comments using boxes and lines.
|
-- Clarify and beautify your comments using boxes and lines.
|
||||||
@@ -174,38 +124,4 @@ return {
|
|||||||
event = 'BufEnter',
|
event = 'BufEnter',
|
||||||
opts = {},
|
opts = {},
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Plugin to improve viewing Markdown files in Neovim
|
|
||||||
-- https://github.com/MeanderingProgrammer/render-markdown.nvim
|
|
||||||
{
|
|
||||||
'MeanderingProgrammer/render-markdown.nvim',
|
|
||||||
event = 'BufEnter',
|
|
||||||
dependencies = {
|
|
||||||
'nvim-treesitter/nvim-treesitter',
|
|
||||||
'nvim-tree/nvim-web-devicons',
|
|
||||||
},
|
|
||||||
ft = 'markdown',
|
|
||||||
opts = {},
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
'ray-x/go.nvim',
|
|
||||||
dependencies = { -- optional packages
|
|
||||||
'ray-x/guihua.lua',
|
|
||||||
'neovim/nvim-lspconfig',
|
|
||||||
'nvim-treesitter/nvim-treesitter',
|
|
||||||
},
|
|
||||||
config = function() require('go').setup() end,
|
|
||||||
event = { 'CmdlineEnter' },
|
|
||||||
ft = { 'go', 'gomod' },
|
|
||||||
build = ':lua require("go.install").update_all_sync()', -- if you need to install/update all binaries
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Mainly a PHP Language Server with more features than you can shake a stick at
|
|
||||||
-- https://github.com/phpactor/phpactor
|
|
||||||
{
|
|
||||||
'phpactor/phpactor',
|
|
||||||
build = 'composer install --no-dev --optimize-autoloader',
|
|
||||||
ft = 'php',
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|||||||
66
config/nvim/lua/plugins/conform.lua
Normal file
66
config/nvim/lua/plugins/conform.lua
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
'stevearc/conform.nvim',
|
||||||
|
event = 'BufWritePre',
|
||||||
|
config = function()
|
||||||
|
local conform = require 'conform'
|
||||||
|
|
||||||
|
conform.setup {
|
||||||
|
formatters_by_ft = {
|
||||||
|
lua = { 'stylua' },
|
||||||
|
},
|
||||||
|
format_on_save = function(bufnr)
|
||||||
|
-- Disable autoformat for files in a certain paths
|
||||||
|
local bufname = vim.api.nvim_buf_get_name(bufnr)
|
||||||
|
if bufname:match '/dist|node_modules|vendor/' then return end
|
||||||
|
|
||||||
|
local disable_lsp = {
|
||||||
|
c = true,
|
||||||
|
cpp = true,
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
lsp_fallback = not disable_lsp[vim.bo[bufnr].filetype],
|
||||||
|
timeout_ms = 500,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
notify_on_error = true,
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
|
||||||
|
|
||||||
|
-- Autoformat toggle keybinding
|
||||||
|
local autoformat = true
|
||||||
|
vim.g.autoformat_enabled = autoformat
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command('ToggleFormat', function()
|
||||||
|
autoformat = not autoformat
|
||||||
|
vim.g.autoformat_enabled = autoformat
|
||||||
|
vim.notify('Autoformat on save: ' .. (autoformat and 'enabled' or 'disabled'))
|
||||||
|
end, {})
|
||||||
|
|
||||||
|
vim.keymap.set(
|
||||||
|
'n',
|
||||||
|
'<leader>tf',
|
||||||
|
':ToggleFormat<CR>',
|
||||||
|
{ desc = 'Toggle autoformat on save' }
|
||||||
|
)
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd('BufWritePre', {
|
||||||
|
callback = function(args)
|
||||||
|
if autoformat then
|
||||||
|
conform.format {
|
||||||
|
bufnr = args.buf,
|
||||||
|
async = true,
|
||||||
|
lsp_format = 'fallback',
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Global statusline helper function
|
||||||
|
function _G.autoformat_status()
|
||||||
|
return vim.g.autoformat_enabled and '[ fmt:on]' or '[ fmt:off]'
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -2,11 +2,18 @@ return {
|
|||||||
-- A collection of small QoL plugins for Neovim
|
-- A collection of small QoL plugins for Neovim
|
||||||
-- https://github.com/folke/snacks.nvim
|
-- https://github.com/folke/snacks.nvim
|
||||||
{
|
{
|
||||||
|
---@module 'snacks'
|
||||||
'folke/snacks.nvim',
|
'folke/snacks.nvim',
|
||||||
priority = 1000,
|
priority = 1000,
|
||||||
lazy = false,
|
lazy = false,
|
||||||
|
---@type snacks.Config
|
||||||
opts = {
|
opts = {
|
||||||
bigfile = { enabled = true },
|
bigfile = { enabled = true },
|
||||||
|
input = { enabled = true },
|
||||||
|
notifier = {
|
||||||
|
enabled = true,
|
||||||
|
timeout = 3000,
|
||||||
|
},
|
||||||
gitbrowse = { enabled = true },
|
gitbrowse = { enabled = true },
|
||||||
quickfile = { enabled = true },
|
quickfile = { enabled = true },
|
||||||
statuscolumn = {
|
statuscolumn = {
|
||||||
@@ -15,7 +22,7 @@ return {
|
|||||||
right = { 'fold', 'git' }, -- priority of signs on the right (high to low)
|
right = { 'fold', 'git' }, -- priority of signs on the right (high to low)
|
||||||
folds = {
|
folds = {
|
||||||
open = true, -- show open fold icons
|
open = true, -- show open fold icons
|
||||||
git_hl = false, -- use Git Signs hl for fold icons
|
git_hl = true, -- use Git Signs hl for fold icons
|
||||||
},
|
},
|
||||||
git = {
|
git = {
|
||||||
-- patterns to match Git signs
|
-- patterns to match Git signs
|
||||||
@@ -36,8 +43,14 @@ return {
|
|||||||
-- replaces the UI for messages, cmdline and the popupmenu.
|
-- replaces the UI for messages, cmdline and the popupmenu.
|
||||||
-- https://github.com/folke/noice.nvim
|
-- https://github.com/folke/noice.nvim
|
||||||
{
|
{
|
||||||
|
---@module 'noice'
|
||||||
'folke/noice.nvim',
|
'folke/noice.nvim',
|
||||||
event = 'VeryLazy',
|
event = 'VeryLazy',
|
||||||
|
dependencies = {
|
||||||
|
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
|
||||||
|
'MunifTanjim/nui.nvim',
|
||||||
|
'rcarriga/nvim-notify',
|
||||||
|
},
|
||||||
opts = {
|
opts = {
|
||||||
lsp = {
|
lsp = {
|
||||||
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
||||||
@@ -60,7 +73,10 @@ return {
|
|||||||
filter = {
|
filter = {
|
||||||
event = 'msg_show',
|
event = 'msg_show',
|
||||||
kind = '',
|
kind = '',
|
||||||
find = 'written',
|
any = {
|
||||||
|
{ find = 'written' },
|
||||||
|
{ find = '%d of %d --%d%--' },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
opts = { skip = true },
|
opts = { skip = true },
|
||||||
},
|
},
|
||||||
@@ -101,14 +117,6 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
dependencies = {
|
|
||||||
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
|
|
||||||
'MunifTanjim/nui.nvim',
|
|
||||||
-- OPTIONAL:
|
|
||||||
-- `nvim-notify` is only needed, if you want to use the notification view.
|
|
||||||
-- If not available, we use `mini` as the fallback
|
|
||||||
'rcarriga/nvim-notify',
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
-- A pretty diagnostics, references, telescope results,
|
-- A pretty diagnostics, references, telescope results,
|
||||||
@@ -116,10 +124,12 @@ return {
|
|||||||
-- trouble your code is causing.
|
-- trouble your code is causing.
|
||||||
-- https://github.com/folke/trouble.nvim
|
-- https://github.com/folke/trouble.nvim
|
||||||
{
|
{
|
||||||
|
---@module 'trouble'
|
||||||
'folke/trouble.nvim',
|
'folke/trouble.nvim',
|
||||||
lazy = false,
|
lazy = false,
|
||||||
cmd = 'Trouble',
|
cmd = 'Trouble',
|
||||||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||||
|
---@type trouble.Config
|
||||||
opts = {
|
opts = {
|
||||||
auto_preview = true,
|
auto_preview = true,
|
||||||
auto_fold = true,
|
auto_fold = true,
|
||||||
@@ -131,7 +141,7 @@ return {
|
|||||||
},
|
},
|
||||||
modes = {
|
modes = {
|
||||||
diagnostics = {
|
diagnostics = {
|
||||||
auto_open = true,
|
auto_open = false,
|
||||||
},
|
},
|
||||||
test = {
|
test = {
|
||||||
mode = 'diagnostics',
|
mode = 'diagnostics',
|
||||||
@@ -139,7 +149,7 @@ return {
|
|||||||
type = 'split',
|
type = 'split',
|
||||||
relative = 'win',
|
relative = 'win',
|
||||||
position = 'right',
|
position = 'right',
|
||||||
size = 0.3,
|
size = 0.25,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
cascade = {
|
cascade = {
|
||||||
@@ -158,13 +168,4 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Navigate your code with search labels, enhanced
|
|
||||||
-- character motions and Treesitter integration
|
|
||||||
-- https://github.com/folke/flash.nvim
|
|
||||||
{
|
|
||||||
'folke/flash.nvim',
|
|
||||||
event = 'VeryLazy',
|
|
||||||
opts = {},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,350 +4,296 @@
|
|||||||
|
|
||||||
require 'utils'
|
require 'utils'
|
||||||
|
|
||||||
-- LSP Servers are installed and configured by lsp-setup.nvim
|
|
||||||
-- Mason formatters Conform uses to format files
|
|
||||||
-- These are automatically configured by zapling/mason-conform.nvim
|
|
||||||
local lsp_servers = {
|
|
||||||
bashls = {},
|
|
||||||
-- csharp_ls = {},
|
|
||||||
diagnosticls = {},
|
|
||||||
gopls = {
|
|
||||||
settings = {
|
|
||||||
gopls = {
|
|
||||||
hints = {
|
|
||||||
rangeVariableTypes = true,
|
|
||||||
parameterNames = true,
|
|
||||||
constantValues = true,
|
|
||||||
assignVariableTypes = true,
|
|
||||||
compositeLiteralFields = true,
|
|
||||||
compositeLiteralTypes = true,
|
|
||||||
functionTypeParameters = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
html = {},
|
|
||||||
intelephense = {
|
|
||||||
init_options = {
|
|
||||||
licenceKey = GetIntelephenseLicense(),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
jsonls = {},
|
|
||||||
lua_ls = {
|
|
||||||
settings = {
|
|
||||||
Lua = {
|
|
||||||
completion = {
|
|
||||||
callSnippet = 'Replace',
|
|
||||||
},
|
|
||||||
diagnostics = {
|
|
||||||
globals = {
|
|
||||||
'vim',
|
|
||||||
},
|
|
||||||
disable = {
|
|
||||||
-- Ignore lua_ls noisy `missing-fields` warnings
|
|
||||||
'missing-fields',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
hint = {
|
|
||||||
enable = true,
|
|
||||||
arrayIndex = 'Auto',
|
|
||||||
await = true,
|
|
||||||
paramName = 'All',
|
|
||||||
paramType = true,
|
|
||||||
semicolon = 'SameLine',
|
|
||||||
setType = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
tailwindcss = {},
|
|
||||||
ts_ls = {
|
|
||||||
settings = {
|
|
||||||
typescript = {
|
|
||||||
inlayHints = {
|
|
||||||
includeInlayParameterNameHints = 'all',
|
|
||||||
includeInlayParameterNameHintsWhenArgumentMatchesName = false,
|
|
||||||
includeInlayFunctionParameterTypeHints = true,
|
|
||||||
includeInlayVariableTypeHints = true,
|
|
||||||
includeInlayVariableTypeHintsWhenTypeMatchesName = false,
|
|
||||||
includeInlayPropertyDeclarationTypeHints = true,
|
|
||||||
includeInlayFunctionLikeReturnTypeHints = true,
|
|
||||||
includeInlayEnumMemberValueHints = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
vimls = {},
|
|
||||||
volar = {
|
|
||||||
settings = {
|
|
||||||
typescript = {
|
|
||||||
inlayHints = {
|
|
||||||
enumMemberValues = {
|
|
||||||
enabled = true,
|
|
||||||
},
|
|
||||||
functionLikeReturnTypes = {
|
|
||||||
enabled = true,
|
|
||||||
},
|
|
||||||
propertyDeclarationTypes = {
|
|
||||||
enabled = true,
|
|
||||||
},
|
|
||||||
parameterTypes = {
|
|
||||||
enabled = true,
|
|
||||||
suppressWhenArgumentMatchesName = true,
|
|
||||||
},
|
|
||||||
variableTypes = {
|
|
||||||
enabled = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Mason tools to automatically install and configure.
|
|
||||||
-- These are automatically configured by WhoIsSethDaniel/mason-tool-installer.nvim
|
|
||||||
local mason_tools = {
|
|
||||||
'actionlint',
|
|
||||||
'editorconfig-checker',
|
|
||||||
'goimports',
|
|
||||||
'gotests',
|
|
||||||
'phpcbf',
|
|
||||||
'phpmd',
|
|
||||||
'phpstan',
|
|
||||||
'pint',
|
|
||||||
'prettierd',
|
|
||||||
'semgrep',
|
|
||||||
'shellcheck',
|
|
||||||
'shfmt',
|
|
||||||
'staticcheck',
|
|
||||||
'stylua',
|
|
||||||
'trivy',
|
|
||||||
'vint',
|
|
||||||
'yamlfmt',
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
-- `lazydev` configures Lua LSP for your Neovim config, runtime and plugins
|
|
||||||
-- used for completion, annotations and signatures of Neovim apis
|
|
||||||
-- https://github.com/folke/lazydev.nvim
|
|
||||||
{
|
{
|
||||||
'folke/lazydev.nvim',
|
'neovim/nvim-lspconfig',
|
||||||
ft = 'lua',
|
dependencies = {
|
||||||
opts = {
|
{ 'williamboman/mason.nvim', opts = {} },
|
||||||
library = {
|
'williamboman/mason-lspconfig.nvim',
|
||||||
-- Load luvit types when the `vim.uv` word is found
|
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
||||||
{ path = 'luvit-meta/library', words = { 'vim%.uv' } },
|
|
||||||
-- load assert and describe paths
|
'folke/lazydev.nvim',
|
||||||
{ path = 'luassert/library', words = { 'assert' } },
|
'zapling/mason-conform.nvim',
|
||||||
{ path = 'busted/library', words = { 'describe' } },
|
|
||||||
},
|
-- Allows extra capabilities provided by blink.cmp
|
||||||
|
'saghen/blink.cmp',
|
||||||
},
|
},
|
||||||
},
|
config = function()
|
||||||
|
local lazydev = require 'lazydev'
|
||||||
|
|
||||||
-- Meta type definitions for the Lua platform Luvit.
|
vim.api.nvim_create_autocmd('LspAttach', {
|
||||||
-- https://github.com/Bilal2453/luvit-meta
|
group = vim.api.nvim_create_augroup('lsp-attach', { clear = true }),
|
||||||
{ 'Bilal2453/luvit-meta', lazy = true },
|
callback = function(event)
|
||||||
|
local map = function(keys, func, desc, mode)
|
||||||
-- Quickstart configs for Nvim LSP
|
mode = mode or 'n'
|
||||||
-- https://github.com/neovim/nvim-lspconfig
|
vim.keymap.set(
|
||||||
{ 'neovim/nvim-lspconfig' },
|
mode,
|
||||||
|
keys,
|
||||||
-- Portable package manager for Neovim that runs everywhere Neovim runs.
|
func,
|
||||||
-- Easily install and manage LSP servers, DAP servers, linters, and formatters.
|
{ buffer = event.buf, desc = 'LSP: ' .. desc }
|
||||||
-- https://github.com/williamboman/mason.nvim
|
)
|
||||||
{
|
|
||||||
'williamboman/mason.nvim',
|
|
||||||
version = '*',
|
|
||||||
cmd = 'Mason',
|
|
||||||
run = ':MasonUpdate',
|
|
||||||
opts = {},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Extensible UI for Neovim notifications and LSP progress messages.
|
|
||||||
-- https://github.com/j-hui/fidget.nvim
|
|
||||||
{
|
|
||||||
'j-hui/fidget.nvim',
|
|
||||||
version = '*',
|
|
||||||
opts = {},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Extension to mason.nvim that makes it easier to use lspconfig with mason.nvim.
|
|
||||||
-- https://github.com/williamboman/mason-lspconfig.nvim
|
|
||||||
{ 'williamboman/mason-lspconfig.nvim' },
|
|
||||||
|
|
||||||
-- Install and upgrade third party tools automatically
|
|
||||||
-- https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim
|
|
||||||
{
|
|
||||||
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
|
||||||
version = '*',
|
|
||||||
opts = {
|
|
||||||
auto_install = true,
|
|
||||||
auto_update = true,
|
|
||||||
ensure_installed = mason_tools,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- JSON schemas for Neovim
|
|
||||||
-- https://github.com/b0o/SchemaStore.nvim
|
|
||||||
{ 'b0o/schemastore.nvim' },
|
|
||||||
|
|
||||||
-- Performant, batteries-included completion plugin for Neovim
|
|
||||||
-- https://github.com/saghen/blink.cmp
|
|
||||||
-- See lua/plugins/blink.lua for configs
|
|
||||||
{ 'saghen/blink.cmp' },
|
|
||||||
|
|
||||||
-- A simple wrapper for nvim-lspconfig and mason-lspconfig
|
|
||||||
-- to easily setup LSP servers.
|
|
||||||
-- https://github.com/junnplus/lsp-setup.nvim
|
|
||||||
{
|
|
||||||
'junnplus/lsp-setup.nvim',
|
|
||||||
opts = {
|
|
||||||
default_mappings = false,
|
|
||||||
servers = lsp_servers,
|
|
||||||
},
|
|
||||||
config = function(_, opts)
|
|
||||||
require('lazydev').setup()
|
|
||||||
require('lsp-setup').setup(opts)
|
|
||||||
local cmp = require 'blink.cmp'
|
|
||||||
local lspconfig = require 'lspconfig'
|
|
||||||
for server, config in pairs(opts.servers) do
|
|
||||||
-- passing config.capabilities to blink.cmp merges with the capabilities in your
|
|
||||||
-- `opts[server].capabilities, if you've defined it
|
|
||||||
config.capabilities = cmp.get_lsp_capabilities(config.capabilities)
|
|
||||||
lspconfig[server].setup(config)
|
|
||||||
end
|
|
||||||
|
|
||||||
lspconfig.lua_ls.on_init = function(client)
|
|
||||||
if client.workspace_folders then
|
|
||||||
local path = client.workspace_folders[1].name
|
|
||||||
if
|
|
||||||
vim.loop.fs_stat(path .. '/.luarc.json')
|
|
||||||
or vim.loop.fs_stat(path .. '/.luarc.jsonc')
|
|
||||||
then
|
|
||||||
return
|
|
||||||
end
|
end
|
||||||
end
|
|
||||||
client.config.settings.Lua =
|
local tsb = require 'telescope.builtin'
|
||||||
vim.tbl_deep_extend('force', client.config.settings.Lua, {
|
|
||||||
runtime = {
|
-- Rename the variable under your cursor.
|
||||||
-- Tell the language server which version of Lua you're using
|
-- Most Language Servers support renaming across files, etc.
|
||||||
-- (most likely LuaJIT in the case of Neovim)
|
map('grn', vim.lsp.buf.rename, '[R]e[n]ame')
|
||||||
version = 'LuaJIT',
|
|
||||||
},
|
-- Execute a code action, usually your cursor needs to be on top of an error
|
||||||
-- Make the server aware of Neovim runtime files
|
-- or a suggestion from your LSP for this to activate.
|
||||||
workspace = {
|
map('gra', vim.lsp.buf.code_action, '[G]oto Code [A]ction', { 'n', 'x' })
|
||||||
checkThirdParty = false,
|
|
||||||
library = {
|
-- Find references for the word under your cursor.
|
||||||
vim.env.VIMRUNTIME,
|
map('grr', tsb.lsp_references, '[G]oto [R]eferences')
|
||||||
|
|
||||||
|
-- Jump to the implementation of the word under your cursor.
|
||||||
|
-- Useful when your language has ways of declaring types without
|
||||||
|
-- an actual implementation.
|
||||||
|
map('gri', tsb.lsp_implementations, '[G]oto [I]mplementation')
|
||||||
|
|
||||||
|
-- Jump to the definition of the word under your cursor.
|
||||||
|
-- This is where a variable was first declared, or where a function is
|
||||||
|
-- defined, etc. To jump back, press <C-t>.
|
||||||
|
map('grd', tsb.lsp_definitions, '[G]oto [D]efinition')
|
||||||
|
|
||||||
|
-- WARN: This is not Goto Definition, this is Goto Declaration.
|
||||||
|
-- For example, in C this would take you to the header.
|
||||||
|
map('grD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
|
||||||
|
|
||||||
|
-- Fuzzy find all the symbols in your current document.
|
||||||
|
-- Symbols are things like variables, functions, types, etc.
|
||||||
|
map('gO', tsb.lsp_document_symbols, 'Open Document Symbols')
|
||||||
|
|
||||||
|
-- Fuzzy find all the symbols in your current workspace.
|
||||||
|
-- Similar to document symbols, except searches over your entire project.
|
||||||
|
map('gW', tsb.lsp_dynamic_workspace_symbols, 'Open Workspace Symbols')
|
||||||
|
|
||||||
|
-- Jump to the type of the word under your cursor.
|
||||||
|
-- Useful when you're not sure what type a variable is and you want to see
|
||||||
|
-- the definition of its *type*, not where it was *defined*.
|
||||||
|
map('grt', tsb.lsp_type_definitions, '[G]oto [T]ype Definition')
|
||||||
|
|
||||||
|
-- This function resolves a difference between neovim nightly
|
||||||
|
-- (version 0.11) and stable (version 0.10)
|
||||||
|
---@param client vim.lsp.Client
|
||||||
|
---@param method vim.lsp.protocol.Method
|
||||||
|
---@param bufnr? integer some lsp support methods only in specific files
|
||||||
|
---@return boolean
|
||||||
|
local function client_supports_method(client, method, bufnr)
|
||||||
|
if vim.fn.has 'nvim-0.11' == 1 then
|
||||||
|
return client:supports_method(method, bufnr)
|
||||||
|
else
|
||||||
|
---@diagnostic disable-next-line: param-type-mismatch
|
||||||
|
return client.supports_method(method, { bufnr = bufnr })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- The following two autocommands are used to highlight references of the
|
||||||
|
-- word under your cursor when your cursor rests there for a little while.
|
||||||
|
-- See `:help CursorHold` for information about when this is executed
|
||||||
|
--
|
||||||
|
-- When you move your cursor, the highlights will be cleared
|
||||||
|
-- (the second autocommand).
|
||||||
|
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||||
|
if
|
||||||
|
client
|
||||||
|
and client_supports_method(
|
||||||
|
client,
|
||||||
|
vim.lsp.protocol.Methods.textDocument_documentHighlight,
|
||||||
|
event.buf
|
||||||
|
)
|
||||||
|
then
|
||||||
|
local highlight_augroup =
|
||||||
|
vim.api.nvim_create_augroup('lsp-highlight', { clear = false })
|
||||||
|
vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
|
||||||
|
buffer = event.buf,
|
||||||
|
group = highlight_augroup,
|
||||||
|
callback = vim.lsp.buf.document_highlight,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, {
|
||||||
|
buffer = event.buf,
|
||||||
|
group = highlight_augroup,
|
||||||
|
callback = vim.lsp.buf.clear_references,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd('LspDetach', {
|
||||||
|
group = vim.api.nvim_create_augroup('lsp-detach', { clear = true }),
|
||||||
|
callback = function(event2)
|
||||||
|
vim.lsp.buf.clear_references()
|
||||||
|
vim.api.nvim_clear_autocmds {
|
||||||
|
group = 'lsp-highlight',
|
||||||
|
buffer = event2.buf,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Diagnostic Config
|
||||||
|
-- See :help vim.diagnostic.Opts
|
||||||
|
vim.diagnostic.config {
|
||||||
|
severity_sort = true,
|
||||||
|
float = { border = 'rounded', source = 'if_many' },
|
||||||
|
underline = { severity = vim.diagnostic.severity.ERROR },
|
||||||
|
signs = vim.g.have_nerd_font and {
|
||||||
|
text = {
|
||||||
|
[vim.diagnostic.severity.ERROR] = ' ',
|
||||||
|
[vim.diagnostic.severity.WARN] = ' ',
|
||||||
|
[vim.diagnostic.severity.INFO] = ' ',
|
||||||
|
[vim.diagnostic.severity.HINT] = ' ',
|
||||||
|
},
|
||||||
|
} or {},
|
||||||
|
virtual_text = {
|
||||||
|
source = 'if_many',
|
||||||
|
spacing = 2,
|
||||||
|
format = function(diagnostic)
|
||||||
|
local diagnostic_message = {
|
||||||
|
[vim.diagnostic.severity.ERROR] = diagnostic.message,
|
||||||
|
[vim.diagnostic.severity.WARN] = diagnostic.message,
|
||||||
|
[vim.diagnostic.severity.INFO] = diagnostic.message,
|
||||||
|
[vim.diagnostic.severity.HINT] = diagnostic.message,
|
||||||
|
}
|
||||||
|
return diagnostic_message[diagnostic.severity]
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local capabilities = require('blink.cmp').get_lsp_capabilities()
|
||||||
|
|
||||||
|
local servers = {
|
||||||
|
ansiblels = {},
|
||||||
|
ast_grep = {},
|
||||||
|
bashls = {},
|
||||||
|
cssls = {},
|
||||||
|
dockerls = {},
|
||||||
|
gopls = {
|
||||||
|
settings = {
|
||||||
|
gopls = {
|
||||||
|
hints = {
|
||||||
|
assignVariableTypes = true,
|
||||||
|
compositeLiteralFields = true,
|
||||||
|
compositeLiteralTypes = true,
|
||||||
|
constantValues = true,
|
||||||
|
functionTypeParameters = true,
|
||||||
|
parameterNames = true,
|
||||||
|
rangeVariableTypes = true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
|
||||||
end
|
|
||||||
lspconfig.jsonls.settings = {
|
|
||||||
json = {
|
|
||||||
schemas = require('schemastore').json.schemas(),
|
|
||||||
validate = { enable = true },
|
|
||||||
},
|
|
||||||
yaml = {
|
|
||||||
schemaStore = {
|
|
||||||
-- You must disable built-in SchemaStore support if you want to use
|
|
||||||
-- this plugin and its advanced options like `ignore`.
|
|
||||||
enable = false,
|
|
||||||
-- Avoid TypeError: Cannot read properties of undefined (reading 'length')
|
|
||||||
url = '',
|
|
||||||
},
|
},
|
||||||
schemas = require('schemastore').yaml.schemas(),
|
},
|
||||||
validate = { enable = true },
|
html = {},
|
||||||
|
intelephense = {
|
||||||
|
init_options = {
|
||||||
|
licenceKey = vim.env.INTELEPHENSE_LICENSE or GetIntelephenseLicense() or nil,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
jsonls = {},
|
||||||
|
lua_ls = {
|
||||||
|
settings = {
|
||||||
|
Lua = {
|
||||||
|
diagnostics = {
|
||||||
|
globals = { 'vim' },
|
||||||
|
disable = { 'missing-fields' },
|
||||||
|
},
|
||||||
|
completion = { callSnippet = 'Replace' },
|
||||||
|
workspace = { checkThirdParty = true },
|
||||||
|
hint = {
|
||||||
|
enable = true,
|
||||||
|
arrayIndex = 'Auto',
|
||||||
|
await = true,
|
||||||
|
paramName = 'All',
|
||||||
|
paramType = true,
|
||||||
|
semicolon = 'SameLine',
|
||||||
|
setType = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
on_init = function(client)
|
||||||
|
client.config.settings.Lua.workspace.library = {
|
||||||
|
vim.env.VIMRUNTIME,
|
||||||
|
}
|
||||||
|
client.config.settings.Lua.runtime = { version = 'LuaJIT' }
|
||||||
|
client.notify(
|
||||||
|
'workspace/didChangeConfiguration',
|
||||||
|
{ settings = client.config.settings }
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
omnisharp = {}, -- C# OmniSharp (will respect EditorConfig for formatting)
|
||||||
|
pyright = {},
|
||||||
|
tailwindcss = {},
|
||||||
|
terraformls = {},
|
||||||
|
ts_ls = {},
|
||||||
|
volar = {
|
||||||
|
settings = {
|
||||||
|
typescript = {
|
||||||
|
inlayHints = {
|
||||||
|
enumMemberValues = { enabled = true },
|
||||||
|
functionLikeReturnTypes = { enabled = true },
|
||||||
|
propertyDeclarationTypes = { enabled = true },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
vimls = {},
|
||||||
|
eslint = {},
|
||||||
|
yamlls = {
|
||||||
|
settings = {
|
||||||
|
yaml = {
|
||||||
|
keyOrdering = false, -- don't auto-sort YAML keys on format
|
||||||
|
schemaStore = { enable = true }, -- use JSON Schema Store for validation
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Diagnostic configuration
|
local ensure_installed = vim.tbl_keys(servers or {})
|
||||||
local signs = {
|
vim.list_extend(ensure_installed, {
|
||||||
{ name = 'DiagnosticSignError', text = '' }, -- Error icon
|
'actionlint', -- GitHub Actions linter
|
||||||
{ name = 'DiagnosticSignWarn', text = '' }, -- Warning icon
|
'shfmt', -- Shell formatter
|
||||||
{ name = 'DiagnosticSignHint', text = '' }, -- Hint icon
|
'stylua', -- Lua formatter
|
||||||
{ name = 'DiagnosticSignInfo', text = '' }, -- Information icon
|
'shellcheck', -- Shell linter
|
||||||
|
})
|
||||||
|
|
||||||
|
require('mason-tool-installer').setup {
|
||||||
|
auto_install = true,
|
||||||
|
auto_update = true,
|
||||||
|
ensure_installed = ensure_installed,
|
||||||
}
|
}
|
||||||
|
|
||||||
local function ensure_sign_defined(name, sign_opts)
|
require('mason-conform').setup {
|
||||||
if vim.tbl_isempty(vim.fn.sign_getdefined(name)) then
|
ensure_installed = ensure_installed,
|
||||||
vim.fn.sign_define(name, sign_opts)
|
}
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for _, sign in ipairs(signs) do
|
require('mason-lspconfig').setup {
|
||||||
ensure_sign_defined(sign.name, {
|
ensure_installed = {}, -- explicitly set to an empty table
|
||||||
text = sign.text,
|
automatic_installation = false,
|
||||||
texthl = sign.texthl or sign.name,
|
handlers = {
|
||||||
numhl = sign.numhl or sign.name,
|
function(server_name)
|
||||||
})
|
local server = servers[server_name] or {}
|
||||||
end
|
server.capabilities =
|
||||||
|
vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
|
||||||
---@type vim.diagnostic.Opts
|
require('lspconfig')[server_name].setup(server)
|
||||||
local diagnostics_config = {
|
end,
|
||||||
signs = {
|
|
||||||
active = signs, -- show signs
|
|
||||||
},
|
},
|
||||||
update_in_insert = false,
|
|
||||||
underline = true,
|
|
||||||
severity_sort = true,
|
|
||||||
virtual_text = true,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
vim.diagnostic.config(diagnostics_config)
|
lazydev.setup {
|
||||||
|
---@type boolean|(fun(root:string):boolean?)
|
||||||
-- end of junnplus/lsp-setup config
|
enabled = true,
|
||||||
|
debug = false,
|
||||||
|
runtime = vim.env.VIMRUNTIME --[[@as string]],
|
||||||
|
library = {
|
||||||
|
{ path = '${3rd}/luv/library', words = { 'vim%.uv' } },
|
||||||
|
},
|
||||||
|
integrations = {
|
||||||
|
lspconfig = true,
|
||||||
|
cmp = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Lightweight yet powerful formatter plugin for Neovim
|
|
||||||
-- https://github.com/stevearc/conform.nvim
|
|
||||||
{
|
|
||||||
'stevearc/conform.nvim',
|
|
||||||
event = { 'BufWritePre' },
|
|
||||||
cmd = { 'ConformInfo' },
|
|
||||||
opts = {
|
|
||||||
notify_on_error = false,
|
|
||||||
---@type nil|conform.FormatOpts|fun(bufnr: integer): nil|conform.FormatOpts
|
|
||||||
format_on_save = function(bufnr)
|
|
||||||
-- Disable "format_on_save lsp_fallback" for languages that don't
|
|
||||||
-- have a well standardized coding style. You can add additional
|
|
||||||
-- languages here or re-enable it for the disabled ones.
|
|
||||||
local disable_filetypes = { c = true, cpp = true }
|
|
||||||
local lsp_format_opt
|
|
||||||
if disable_filetypes[vim.bo[bufnr].filetype] then
|
|
||||||
lsp_format_opt = 'never'
|
|
||||||
else
|
|
||||||
lsp_format_opt = 'fallback'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Disable autoformat for files in a certain paths
|
|
||||||
local bufname = vim.api.nvim_buf_get_name(bufnr)
|
|
||||||
if bufname:match '/node_modules|vendor/' then return end
|
|
||||||
|
|
||||||
return {
|
|
||||||
timeout_ms = 500,
|
|
||||||
lsp_format = lsp_format_opt,
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
formatters_by_ft = {
|
|
||||||
lua = { 'stylua' },
|
|
||||||
sh = { 'shfmt' },
|
|
||||||
bash = { 'shfmt' },
|
|
||||||
php = { 'phpcbf' },
|
|
||||||
-- Conform can also run multiple formatters sequentially
|
|
||||||
-- python = { "isort", "black" },
|
|
||||||
--
|
|
||||||
-- You can use 'stop_after_first' to run the first available formatter from the list
|
|
||||||
-- javascript = { "prettierd", "prettier", stop_after_first = true },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
init = function()
|
|
||||||
-- If you want the formatexpr, here is the place to set it
|
|
||||||
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
-- Automatically install formatters registered with conform.nvim via mason.nvim
|
|
||||||
-- https://github.com/zapling/mason-conform.nvim
|
|
||||||
{ 'zapling/mason-conform.nvim', opts = {} },
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,42 @@ return {
|
|||||||
version = '*',
|
version = '*',
|
||||||
priority = 1001,
|
priority = 1001,
|
||||||
config = function()
|
config = function()
|
||||||
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
|
-- │ Text editing │
|
||||||
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
|
-- Better Around/Inside textobjects
|
||||||
|
-- Examples:
|
||||||
|
-- - va) - [V]isually select [A]round [)]paren
|
||||||
|
-- - yinq - [Y]ank [I]nside [N]ext [Q]uote
|
||||||
|
-- - ci' - [C]hange [I]nside [']quote
|
||||||
|
require('mini.ai').setup { n_lines = 500 }
|
||||||
|
|
||||||
|
-- Comment lines
|
||||||
|
require('mini.comment').setup()
|
||||||
|
|
||||||
|
-- Text edit operators
|
||||||
|
-- g= - Evaluate text and replace with output
|
||||||
|
-- gx - Exchange text regions
|
||||||
|
-- gm - Multiply (duplicate) text
|
||||||
|
-- gr - Replace text with register
|
||||||
|
-- gs - Sort text
|
||||||
|
require('mini.operators').setup()
|
||||||
|
|
||||||
|
-- Split and join arguments, lists, and other sequences
|
||||||
|
require('mini.splitjoin').setup()
|
||||||
|
|
||||||
|
-- Fast and feature-rich surround actions
|
||||||
|
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
|
||||||
|
-- - sd' - [S]urround [D]elete [']quotes
|
||||||
|
-- - sr)' - [S]urround [R]eplace [)] [']
|
||||||
|
-- - sff - find right (`sf`) part of surrounding function call (`f`)
|
||||||
|
require('mini.surround').setup()
|
||||||
|
|
||||||
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
|
-- │ General workflow │
|
||||||
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
-- Presets for common options and mappings
|
-- Presets for common options and mappings
|
||||||
-- h: MiniBasics.config
|
-- h: MiniBasics.config
|
||||||
require('mini.basics').setup {
|
require('mini.basics').setup {
|
||||||
@@ -25,17 +61,12 @@ return {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Animate common Neovim actions
|
|
||||||
-- Replaced anuvyklack/windows.nvim
|
|
||||||
require('mini.animate').setup()
|
|
||||||
|
|
||||||
-- Buffer removing (unshow, delete, wipeout), which saves window layout
|
-- Buffer removing (unshow, delete, wipeout), which saves window layout
|
||||||
-- Replaced famiu/bufdelete.nvim
|
|
||||||
require('mini.bufremove').setup()
|
require('mini.bufremove').setup()
|
||||||
|
|
||||||
-- Show next key clues
|
-- Show next key clues
|
||||||
-- Replaced folke/which-key.nvim
|
|
||||||
local miniclue = require 'mini.clue'
|
local miniclue = require 'mini.clue'
|
||||||
|
---@modules mini.clue
|
||||||
miniclue.setup {
|
miniclue.setup {
|
||||||
window = {
|
window = {
|
||||||
config = {
|
config = {
|
||||||
@@ -100,22 +131,30 @@ return {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Comment lines
|
|
||||||
-- Replaced numToStr/Comment.nvim
|
|
||||||
require('mini.comment').setup()
|
|
||||||
|
|
||||||
-- Highlight cursor word and its matches
|
|
||||||
require('mini.cursorword').setup()
|
|
||||||
|
|
||||||
-- Work with diff hunks
|
-- Work with diff hunks
|
||||||
-- Replaced lewis6991/gitsigns.nvim
|
|
||||||
require('mini.diff').setup()
|
require('mini.diff').setup()
|
||||||
|
|
||||||
-- Git integration
|
-- Git integration
|
||||||
require('mini.git').setup()
|
require('mini.git').setup()
|
||||||
|
|
||||||
|
-- Session management (read, write, delete)
|
||||||
|
require('mini.sessions').setup {
|
||||||
|
autowrite = true,
|
||||||
|
directory = vim.g.sessions_dir or vim.fn.stdpath 'data' .. '/sessions',
|
||||||
|
file = '',
|
||||||
|
}
|
||||||
|
|
||||||
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
|
-- │ Appearance │
|
||||||
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
|
-- Animate common Neovim actions
|
||||||
|
require('mini.animate').setup()
|
||||||
|
|
||||||
|
-- Highlight cursor word and its matches
|
||||||
|
require('mini.cursorword').setup()
|
||||||
|
|
||||||
-- Highlight patterns in text
|
-- Highlight patterns in text
|
||||||
-- Replaced folke/todo-comments.nvim
|
|
||||||
local hp = require 'mini.hipatterns'
|
local hp = require 'mini.hipatterns'
|
||||||
hp.setup {
|
hp.setup {
|
||||||
highlighters = {
|
highlighters = {
|
||||||
@@ -162,36 +201,16 @@ return {
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- Visualize and work with indent scope
|
-- Visualize and work with indent scope
|
||||||
-- Replaced lukas-reineke/indent-blankline.nvim
|
|
||||||
require('mini.indentscope').setup()
|
require('mini.indentscope').setup()
|
||||||
|
|
||||||
-- Text edit operators
|
|
||||||
-- g= - Evaluate text and replace with output
|
|
||||||
-- gx - Exchange text regions
|
|
||||||
-- gm - Multiply (duplicate) text
|
|
||||||
-- gr - Replace text with register
|
|
||||||
-- gs - Sort text
|
|
||||||
require('mini.operators').setup()
|
|
||||||
|
|
||||||
-- Session management (read, write, delete)
|
|
||||||
require('mini.sessions').setup {
|
|
||||||
autowrite = true,
|
|
||||||
directory = vim.g.sessions_dir or vim.fn.stdpath 'data' .. '/sessions',
|
|
||||||
file = '',
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Split and join arguments, lists, and other sequences
|
|
||||||
-- Replaced Wansmer/treesj
|
|
||||||
require('mini.splitjoin').setup()
|
|
||||||
|
|
||||||
-- Fast and flexible start screen
|
-- Fast and flexible start screen
|
||||||
-- Replaced glepnir/dashboard-nvim
|
|
||||||
local starter = require 'mini.starter'
|
local starter = require 'mini.starter'
|
||||||
|
---@modules mini.starter
|
||||||
starter.setup {
|
starter.setup {
|
||||||
items = {
|
items = {
|
||||||
starter.sections.telescope(),
|
starter.sections.telescope(),
|
||||||
starter.sections.builtin_actions(),
|
starter.sections.builtin_actions(),
|
||||||
starter.sections.sessions(5, true),
|
starter.sections.recent_files(5),
|
||||||
},
|
},
|
||||||
content_hooks = {
|
content_hooks = {
|
||||||
starter.gen_hook.adding_bullet(),
|
starter.gen_hook.adding_bullet(),
|
||||||
@@ -201,25 +220,38 @@ return {
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- Minimal and fast statusline module with opinionated default look
|
-- Minimal and fast statusline module with opinionated default look
|
||||||
-- Replaced nvim-lualine/lualine.nvim
|
|
||||||
local sl = require 'mini.statusline'
|
local sl = require 'mini.statusline'
|
||||||
|
---@modules mini.statusline
|
||||||
sl.setup {
|
sl.setup {
|
||||||
use_icons = true,
|
use_icons = true,
|
||||||
set_vim_settings = true,
|
set_vim_settings = true,
|
||||||
content = {
|
content = {
|
||||||
active = function()
|
active = function()
|
||||||
local mode, mode_hl = sl.section_mode { trunc_width = 120 }
|
local mode, mode_hl = sl.section_mode { trunc_width = 100 }
|
||||||
local git = sl.section_git { trunc_width = 9999 }
|
local git = sl.section_git { trunc_width = 40 }
|
||||||
local diagnostics = sl.section_diagnostics { trunc_width = 9999 }
|
local diagnostics = sl.section_diagnostics {
|
||||||
local filename = sl.section_filename { trunc_width = 9999 }
|
trunc_width = 75,
|
||||||
|
signs = {
|
||||||
|
ERROR = 'E ',
|
||||||
|
WARN = 'W ',
|
||||||
|
INFO = 'I ',
|
||||||
|
HINT = 'H ',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
local lsp = MiniStatusline.section_lsp { trunc_width = 75 }
|
||||||
|
local filename = sl.section_filename { trunc_width = 140 }
|
||||||
local fileinfo = sl.section_fileinfo { trunc_width = 9999 }
|
local fileinfo = sl.section_fileinfo { trunc_width = 9999 }
|
||||||
local location = sl.section_location { trunc_width = 9999 }
|
local location = sl.section_location { trunc_width = 9999 }
|
||||||
return sl.combine_groups {
|
return sl.combine_groups {
|
||||||
{ hl = mode_hl, strings = { mode } },
|
{ hl = mode_hl, strings = { mode } },
|
||||||
{ hl = 'statuslineDevinfo', strings = { git, diagnostics } },
|
{
|
||||||
|
hl = 'MiniStatuslineDevinfo',
|
||||||
|
strings = { git, lsp },
|
||||||
|
},
|
||||||
'%<', -- Mark general truncate point
|
'%<', -- Mark general truncate point
|
||||||
{ hl = 'statuslineFilename', strings = { filename } },
|
{ hl = 'statuslineFilename', strings = { filename } },
|
||||||
'%=', -- End left alignment
|
'%=', -- End left alignment
|
||||||
|
{ hl = 'statuslineFileinfo', strings = { diagnostics } },
|
||||||
{ hl = 'statuslineFileinfo', strings = { fileinfo } },
|
{ hl = 'statuslineFileinfo', strings = { fileinfo } },
|
||||||
{ hl = mode_hl, strings = { location } },
|
{ hl = mode_hl, strings = { location } },
|
||||||
}
|
}
|
||||||
@@ -227,13 +259,6 @@ return {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Fast and feature-rich surround actions
|
|
||||||
-- Replaced kylechui/nvim-surround
|
|
||||||
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
|
|
||||||
-- - sd' - [S]urround [D]elete [']quotes
|
|
||||||
-- - sr)' - [S]urround [R]eplace [)] [']
|
|
||||||
require('mini.surround').setup()
|
|
||||||
|
|
||||||
-- Work with trailing whitespace
|
-- Work with trailing whitespace
|
||||||
require('mini.trailspace').setup()
|
require('mini.trailspace').setup()
|
||||||
end,
|
end,
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ return {
|
|||||||
'document_symbols',
|
'document_symbols',
|
||||||
},
|
},
|
||||||
source_selector = {
|
source_selector = {
|
||||||
winbar = true,
|
winbar = false,
|
||||||
statusline = false,
|
statusline = false,
|
||||||
separator = { left = '', right = '' },
|
separator = { left = '', right = '' },
|
||||||
show_separator_on_edge = true,
|
show_separator_on_edge = true,
|
||||||
@@ -54,9 +54,7 @@ return {
|
|||||||
event_handlers = {
|
event_handlers = {
|
||||||
{
|
{
|
||||||
event = 'file_opened',
|
event = 'file_opened',
|
||||||
handler = function(file_path)
|
handler = function(_) require('neo-tree.command').execute { action = 'close' } end,
|
||||||
require('neo-tree.command').execute { action = 'close' }
|
|
||||||
end,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
default_component_configs = {
|
default_component_configs = {
|
||||||
|
|||||||
@@ -1,44 +1,13 @@
|
|||||||
return {
|
return {
|
||||||
{
|
|
||||||
'rmagatti/auto-session',
|
|
||||||
lazy = false,
|
|
||||||
version = '*',
|
|
||||||
opts = {
|
|
||||||
suppressed_dirs = {
|
|
||||||
'/',
|
|
||||||
'~/',
|
|
||||||
'~/Downloads',
|
|
||||||
'~/Library',
|
|
||||||
},
|
|
||||||
bypass_save_filetypes = {
|
|
||||||
'PlenaryTestPopup',
|
|
||||||
'alpha',
|
|
||||||
'checkhealth',
|
|
||||||
'dashboard',
|
|
||||||
'dbout',
|
|
||||||
'gitsigns.blame',
|
|
||||||
'grug-far',
|
|
||||||
'help',
|
|
||||||
'lspinfo',
|
|
||||||
'man',
|
|
||||||
'neo-tree',
|
|
||||||
'neotest-output',
|
|
||||||
'neotest-output-panel',
|
|
||||||
'neotest-summary',
|
|
||||||
'notify',
|
|
||||||
'qf',
|
|
||||||
'spectre_panel',
|
|
||||||
'startuptime',
|
|
||||||
'trouble',
|
|
||||||
'tsplayground',
|
|
||||||
},
|
|
||||||
-- log_level = 'debug',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
'nvim-lua/plenary.nvim',
|
'nvim-lua/plenary.nvim',
|
||||||
version = '*',
|
version = '*',
|
||||||
lazy = false,
|
lazy = false,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
-- Vim plugin for automatic time tracking and metrics
|
||||||
|
-- generated from your programming activity.
|
||||||
|
-- https://github.com/wakatime/vim-wakatime
|
||||||
|
{ 'wakatime/vim-wakatime', lazy = false, enabled = true },
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ return {
|
|||||||
-- https://github.com/nvim-telescope/telescope.nvim
|
-- https://github.com/nvim-telescope/telescope.nvim
|
||||||
'nvim-telescope/telescope.nvim',
|
'nvim-telescope/telescope.nvim',
|
||||||
version = '*',
|
version = '*',
|
||||||
lazy = false,
|
lazy = true,
|
||||||
|
cmd = 'Telescope',
|
||||||
dependencies = {
|
dependencies = {
|
||||||
{ 'nvim-lua/plenary.nvim' },
|
{ 'nvim-lua/plenary.nvim' },
|
||||||
{ 'nvim-telescope/telescope-symbols.nvim' },
|
{ 'nvim-telescope/telescope-symbols.nvim' },
|
||||||
@@ -16,10 +17,6 @@ return {
|
|||||||
-- https://github.com/polirritmico/telescope-lazy-plugins.nvim
|
-- https://github.com/polirritmico/telescope-lazy-plugins.nvim
|
||||||
{ 'polirritmico/telescope-lazy-plugins.nvim' },
|
{ 'polirritmico/telescope-lazy-plugins.nvim' },
|
||||||
|
|
||||||
-- Neovim plugin. Telescope.nvim extension that adds LuaSnip integration.
|
|
||||||
-- https://github.com/benfowler/telescope-luasnip.nvim
|
|
||||||
{ 'benfowler/telescope-luasnip.nvim' },
|
|
||||||
|
|
||||||
-- Fuzzy Finder Algorithm which requires local dependencies to be built.
|
-- Fuzzy Finder Algorithm which requires local dependencies to be built.
|
||||||
-- Only load if `make` is available
|
-- Only load if `make` is available
|
||||||
{
|
{
|
||||||
@@ -27,27 +24,45 @@ return {
|
|||||||
build = 'make',
|
build = 'make',
|
||||||
cond = vim.fn.executable 'make' == 1,
|
cond = vim.fn.executable 'make' == 1,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Import modules with ease
|
|
||||||
-- https://github.com/piersolenski/telescope-import.nvim
|
|
||||||
{ 'piersolenski/telescope-import.nvim' },
|
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
local t = require 'telescope'
|
local t = require 'telescope'
|
||||||
local a = require 'telescope.actions'
|
local a = require 'telescope.actions'
|
||||||
|
local c = require 'telescope.config'
|
||||||
|
|
||||||
local open_with_trouble = require('trouble.sources.telescope').open
|
local open_with_trouble = require('trouble.sources.telescope').open
|
||||||
local add_to_trouble = require('trouble.sources.telescope').add
|
local add_to_trouble = require('trouble.sources.telescope').add
|
||||||
|
|
||||||
|
-- Clone the default Telescope configuration
|
||||||
|
local vimgrep_arguments = { unpack(c.values.vimgrep_arguments) }
|
||||||
|
|
||||||
|
-- I want to search in hidden/dot files.
|
||||||
|
table.insert(vimgrep_arguments, '--hidden')
|
||||||
|
-- I don't want to search in the `.git` directory.
|
||||||
|
table.insert(vimgrep_arguments, '--glob')
|
||||||
|
table.insert(vimgrep_arguments, '!**/.git/*')
|
||||||
|
|
||||||
-- [[ Configure Telescope ]]
|
-- [[ Configure Telescope ]]
|
||||||
-- See `:help telescope` and `:help telescope.setup()`
|
-- See `:help telescope` and `:help telescope.setup()`
|
||||||
t.setup {
|
t.setup {
|
||||||
defaults = {
|
defaults = {
|
||||||
|
-- `hidden = true` is not supported in text grep commands.
|
||||||
|
vimgrep_arguments = vimgrep_arguments,
|
||||||
|
|
||||||
layout_strategy = 'horizontal',
|
layout_strategy = 'horizontal',
|
||||||
pickers = {
|
pickers = {
|
||||||
find_files = {
|
find_files = {
|
||||||
|
-- `hidden = true` will still show the inside of `.git/` as
|
||||||
|
-- it's not `.gitignore`d.
|
||||||
|
find_command = { 'rg', '--files', '--hidden', '--glob', '!**/.git/*' },
|
||||||
theme = 'dropdown',
|
theme = 'dropdown',
|
||||||
},
|
},
|
||||||
|
mappings = {
|
||||||
|
i = {
|
||||||
|
['<C-s>'] = a.cycle_previewers_next,
|
||||||
|
['<C-a>'] = a.cycle_previewers_prev,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
mappings = {
|
mappings = {
|
||||||
i = {
|
i = {
|
||||||
@@ -64,28 +79,28 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
additional_vim_regex_highlighting = false,
|
||||||
|
},
|
||||||
|
incremental_selection = {
|
||||||
|
enable = true,
|
||||||
|
keymaps = {
|
||||||
|
init_selection = '<CR>',
|
||||||
|
node_incremental = '<CR>',
|
||||||
|
scope_incremental = '<TAB>',
|
||||||
|
node_decremental = '<S-TAB>',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
context_commentstring = {
|
||||||
|
enable = true,
|
||||||
|
enable_autocmd = false,
|
||||||
|
},
|
||||||
extensions = {
|
extensions = {
|
||||||
lazy_plugins = {
|
lazy_plugins = {
|
||||||
-- Must be a valid path to the file containing the lazy spec and setup() call.
|
-- Must be a valid path to the file containing the lazy spec and setup() call.
|
||||||
lazy_config = vim.fn.stdpath 'config' .. '/init.lua',
|
lazy_config = vim.fn.stdpath 'config' .. '/init.lua',
|
||||||
},
|
},
|
||||||
import = {
|
|
||||||
-- Imports can be added at a specified line whilst keeping the cursor in place
|
|
||||||
insert_at_top = true,
|
|
||||||
-- Optionally support additional languages or modify existing languages...
|
|
||||||
custom_languages = {
|
|
||||||
{
|
|
||||||
-- The filetypes that ripgrep supports (find these via `rg --type-list`)
|
|
||||||
extensions = { 'js', 'ts' },
|
|
||||||
-- The Vim filetypes
|
|
||||||
filetypes = { 'vue' },
|
|
||||||
-- Optionally set a line other than 1
|
|
||||||
insert_at_line = 2, ---@type function|number
|
|
||||||
-- The regex pattern for the import statement
|
|
||||||
regex = [[^(?:import(?:[\"'\s]*([\w*{}\n, ]+)from\s*)?[\"'\s](.*?)[\"'\s].*)]],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,8 @@
|
|||||||
return {
|
return {
|
||||||
-- Theme of choice, tokyonight
|
|
||||||
-- https://github.com/folke/tokyonight.nvim
|
|
||||||
{
|
{
|
||||||
'folke/tokyonight.nvim',
|
'rmehri01/onenord.nvim',
|
||||||
priority = 1000, -- Make sure to load this before all the other start plugins.
|
opts = {},
|
||||||
init = function() vim.cmd.colorscheme(vim.g.colors_theme) end,
|
|
||||||
opts = {
|
|
||||||
transparent = true,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Automatic dark mode
|
-- Automatic dark mode
|
||||||
-- https://github.com/f-person/auto-dark-mode.nvim
|
-- https://github.com/f-person/auto-dark-mode.nvim
|
||||||
{
|
{
|
||||||
@@ -18,11 +11,11 @@ return {
|
|||||||
update_interval = 1000,
|
update_interval = 1000,
|
||||||
set_dark_mode = function()
|
set_dark_mode = function()
|
||||||
vim.api.nvim_set_option_value('background', 'dark', {})
|
vim.api.nvim_set_option_value('background', 'dark', {})
|
||||||
vim.cmd.colorscheme(vim.g.colors_variant_dark)
|
-- vim.cmd.colorscheme(vim.g.colors_variant_dark)
|
||||||
end,
|
end,
|
||||||
set_light_mode = function()
|
set_light_mode = function()
|
||||||
vim.api.nvim_set_option_value('background', 'light', {})
|
vim.api.nvim_set_option_value('background', 'light', {})
|
||||||
vim.cmd.colorscheme(vim.g.colors_variant_light)
|
-- vim.cmd.colorscheme(vim.g.colors_variant_light)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -31,6 +24,7 @@ return {
|
|||||||
-- https://github.com/catgoose/nvim-colorizer.lua
|
-- https://github.com/catgoose/nvim-colorizer.lua
|
||||||
{
|
{
|
||||||
'catgoose/nvim-colorizer.lua',
|
'catgoose/nvim-colorizer.lua',
|
||||||
|
event = 'BufReadPre',
|
||||||
opts = {
|
opts = {
|
||||||
user_default_options = {
|
user_default_options = {
|
||||||
names = false,
|
names = false,
|
||||||
@@ -38,13 +32,27 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
-- A neovim plugin that shows colorcolumn dynamically
|
|
||||||
-- https://github.com/Bekaboo/deadcolumn.nvim
|
|
||||||
{ 'Bekaboo/deadcolumn.nvim' },
|
|
||||||
|
|
||||||
-- Remove all background colors to make nvim transparent
|
-- Remove all background colors to make nvim transparent
|
||||||
-- https://github.com/xiyaowong/nvim-transparent
|
-- https://github.com/xiyaowong/nvim-transparent
|
||||||
{ 'xiyaowong/nvim-transparent', opts = {} },
|
{
|
||||||
|
'xiyaowong/nvim-transparent',
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
local t = require 'transparent'
|
||||||
|
t.setup {
|
||||||
|
extra_groups = {
|
||||||
|
'NormalNC',
|
||||||
|
'NormalFloat',
|
||||||
|
'FloatBorder',
|
||||||
|
'TelescopeBorder',
|
||||||
|
'TelescopePromptBorder',
|
||||||
|
'TelescopeResultsBorder',
|
||||||
|
'TelescopePreviewBorder',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
t.clear_prefix 'NeoTree'
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
-- Display a character as the colorcolumn
|
-- Display a character as the colorcolumn
|
||||||
-- https://github.com/lukas-reineke/virt-column.nvim
|
-- https://github.com/lukas-reineke/virt-column.nvim
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
-- Vim plugin for automatic time tracking and metrics
|
|
||||||
-- generated from your programming activity.
|
|
||||||
-- https://github.com/wakatime/vim-wakatime
|
|
||||||
return { 'wakatime/vim-wakatime', lazy = false, enabled = true }
|
|
||||||
31
config/nvim/syntax/env.vim
Normal file
31
config/nvim/syntax/env.vim
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: env files (NOT shell code)
|
||||||
|
" Maintainer: Gernot Schulz <gernot.schulz@overleaf.com>
|
||||||
|
" Source: https://github.com/overleaf/vim-env-syntax
|
||||||
|
|
||||||
|
" quit when a syntax file was already loaded
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn match envComment '^#.*'
|
||||||
|
syn match envVariableUnassigned "^\<\h\w*$"
|
||||||
|
|
||||||
|
syn match envVariable "^\<\h\w*\ze=" nextgroup=envVarAssign
|
||||||
|
syn match envVarAssign contained "=" nextgroup=envVar,envQuotedVarOpen,envSpace
|
||||||
|
syn match envVar contained "\h\w*"
|
||||||
|
syn match envSpace contained "\s\+" nextgroup=envQuotedVarOpen
|
||||||
|
syn match envQuotedVarOpen contained "[\"']"
|
||||||
|
|
||||||
|
syn match envSpace "\s$"
|
||||||
|
syn match envQuotedVarClose "[\"']$"
|
||||||
|
|
||||||
|
let b:current_syntax = "env"
|
||||||
|
|
||||||
|
hi def link envComment Comment
|
||||||
|
hi def link envVariableUnassigned Error
|
||||||
|
hi def link envVariable Identifier
|
||||||
|
hi def link envVarAssign Operator
|
||||||
|
hi def link envSpace Error
|
||||||
|
hi def link envQuotedVarOpen Error
|
||||||
|
hi def link envQuotedVarClose Error
|
||||||
2
config/op/plugins.sh
Normal file
2
config/op/plugins.sh
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
export OP_PLUGIN_ALIASES_SOURCED=1
|
||||||
|
alias gh="op plugin run -- gh"
|
||||||
15
config/op/plugins/gh.json
Normal file
15
config/op/plugins/gh.json
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"account_id": "S5Z2DMNFKJEZBPCWRHRWC4DCGI",
|
||||||
|
"entrypoint": [
|
||||||
|
"gh"
|
||||||
|
],
|
||||||
|
"credentials": [
|
||||||
|
{
|
||||||
|
"plugin": "github",
|
||||||
|
"credential_type": "personal_access_token",
|
||||||
|
"usage_id": "personal_access_token",
|
||||||
|
"vault_id": "injcin7obv3jdet3r2u3kfihfy",
|
||||||
|
"item_id": "f6vinbnc6l7ngdzvlw66ayewlq"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
1
config/op/plugins/used_items/gh.json
Normal file
1
config/op/plugins/used_items/gh.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[{"account_id":"S5Z2DMNFKJEZBPCWRHRWC4DCGI","vault_id":"injcin7obv3jdet3r2u3kfihfy","item_id":"f6vinbnc6l7ngdzvlw66ayewlq"}]
|
||||||
@@ -6,7 +6,8 @@
|
|||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
[ -z "$DOTFILES" ] && export DOTFILES="$HOME/.dotfiles"
|
[ -z "$DOTFILES" ] && export DOTFILES="$HOME/.dotfiles"
|
||||||
export DOTFILES_CURRENT_SHELL=$(basename "$SHELL")
|
DOTFILES_CURRENT_SHELL=$(basename "$SHELL")
|
||||||
|
export DOTFILES_CURRENT_SHELL
|
||||||
|
|
||||||
# Enable verbosity with VERBOSE=1
|
# Enable verbosity with VERBOSE=1
|
||||||
VERBOSE="${VERBOSE:-0}"
|
VERBOSE="${VERBOSE:-0}"
|
||||||
@@ -16,13 +17,53 @@ DEBUG="${DEBUG:-0}"
|
|||||||
# Enable debugging with DEBUG=1
|
# Enable debugging with DEBUG=1
|
||||||
[ "${DEBUG:-0}" -eq 1 ] && set -x
|
[ "${DEBUG:-0}" -eq 1 ] && set -x
|
||||||
|
|
||||||
|
# Detect the current shell
|
||||||
|
CURRENT_SHELL=$(ps -p $$ -ocomm= | awk -F/ '{print $NF}')
|
||||||
|
|
||||||
|
# Function to prepend a path to PATH based on the shell
|
||||||
|
x-path-prepend()
|
||||||
|
{
|
||||||
|
local dir=$1
|
||||||
|
case "$CURRENT_SHELL" in
|
||||||
|
fish)
|
||||||
|
set -U fish_user_paths "$dir" $fish_user_paths
|
||||||
|
;;
|
||||||
|
sh | bash | zsh)
|
||||||
|
PATH="$dir:$PATH"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported shell: $CURRENT_SHELL"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to set environment variables based on the shell
|
||||||
|
x-set-env()
|
||||||
|
{
|
||||||
|
local var=$1
|
||||||
|
local value=$2
|
||||||
|
case "$CURRENT_SHELL" in
|
||||||
|
fish)
|
||||||
|
set -x "$var" "$value"
|
||||||
|
;;
|
||||||
|
sh | bash | zsh)
|
||||||
|
export "$var=$value"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported shell: $CURRENT_SHELL"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
# Explicitly set XDG folders, if not already set
|
# Explicitly set XDG folders, if not already set
|
||||||
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
||||||
[ -z "$XDG_CONFIG_HOME" ] && export XDG_CONFIG_HOME="$HOME/.config"
|
x-set-env XDG_CONFIG_HOME "$HOME/.config"
|
||||||
[ -z "$XDG_DATA_HOME" ] && export XDG_DATA_HOME="$HOME/.local/share"
|
x-set-env XDG_DATA_HOME "$HOME/.local/share"
|
||||||
[ -z "$XDG_CACHE_HOME" ] && export XDG_CACHE_HOME="$HOME/.cache"
|
x-set-env XDG_CACHE_HOME "$HOME/.cache"
|
||||||
[ -z "$XDG_STATE_HOME" ] && export XDG_STATE_HOME="$HOME/.local/state"
|
x-set-env XDG_STATE_HOME "$HOME/.local/state"
|
||||||
[ -z "$XDG_BIN_HOME" ] && export XDG_BIN_HOME="$HOME/.local/bin"
|
x-set-env XDG_BIN_HOME "$HOME/.local/bin"
|
||||||
|
|
||||||
# Paths
|
# Paths
|
||||||
x-path-prepend "/usr/local/bin"
|
x-path-prepend "/usr/local/bin"
|
||||||
|
|||||||
96
config/skhd/skhdrc
Normal file
96
config/skhd/skhdrc
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
# skhd configuration file
|
||||||
|
# https://github.com/koekeishiya/skhd
|
||||||
|
|
||||||
|
# Reserved keys
|
||||||
|
# ---------------------------
|
||||||
|
# shift + cmd
|
||||||
|
# m = restart yabai
|
||||||
|
# q = quit yabai
|
||||||
|
# <cr> = open wezterm
|
||||||
|
# alt
|
||||||
|
# h = focus west
|
||||||
|
# j = focus south
|
||||||
|
# k = focus north
|
||||||
|
# l = focus east
|
||||||
|
# e = toggle split
|
||||||
|
# y = toggle float, center window medium size
|
||||||
|
# u = move window to left
|
||||||
|
# i = move window to center
|
||||||
|
# o = move window to right
|
||||||
|
# ctrl + alt
|
||||||
|
# h = resize window left
|
||||||
|
# j = resize window down
|
||||||
|
# k = resize window up
|
||||||
|
# l = resize window right
|
||||||
|
# alt + shift
|
||||||
|
# t = toggle float, center window medium size
|
||||||
|
# y = toggle float, center window large size
|
||||||
|
# h = swap window left
|
||||||
|
# j = swap window down
|
||||||
|
# k = swap window up
|
||||||
|
# l = swap window right
|
||||||
|
|
||||||
|
# Control applications
|
||||||
|
## Yabai
|
||||||
|
shift + cmd - m : yabai --restart-service # restart yabai
|
||||||
|
shift + cmd - q : yabai --quit # quit yabai
|
||||||
|
|
||||||
|
## wezterm
|
||||||
|
shift + cmd - return : wezterm
|
||||||
|
|
||||||
|
# Floating windows
|
||||||
|
|
||||||
|
# float / unfloat window and center on screen medium size
|
||||||
|
alt - t : yabai -m window --toggle float;\
|
||||||
|
yabai -m window --grid 9:16:1:1:14:7
|
||||||
|
|
||||||
|
# float / unfloat window and center on screen large size
|
||||||
|
shift + alt - t : yabai -m window --toggle float;\
|
||||||
|
yabai -m window --grid 90:160:5:5:150:80
|
||||||
|
|
||||||
|
# make floating window fill screen
|
||||||
|
alt - y : yabai -m window --toggle float;\
|
||||||
|
yabai -m window --grid 1:1:0:0:1:1
|
||||||
|
|
||||||
|
# toggle float window and center on screen medium size
|
||||||
|
shift + alt - y : yabai -m window --toggle float \
|
||||||
|
&& yabai -m window --resize \
|
||||||
|
abs:$(($(yabai -m query --displays --display | jq .frame.w) / 2)):$(($(yabai -m query --displays --display | jq .frame.h) * 4 / 5)) \
|
||||||
|
&& yabai -m window --move \
|
||||||
|
abs:$(($(yabai -m query --displays --display | jq .frame.x) + $(($(yabai -m query --displays --display | jq .frame.w) / 4)))):$(($(yabai -m query --displays --display | jq .frame.y) + $(($(yabai -m query --displays --display | jq .frame.h) / 10))))
|
||||||
|
|
||||||
|
# toggle window split type
|
||||||
|
alt - e : yabai -m window --toggle split
|
||||||
|
|
||||||
|
|
||||||
|
# Focusing, resizing and moving windows
|
||||||
|
|
||||||
|
## focus window
|
||||||
|
alt - h : yabai -m window --focus west
|
||||||
|
alt - j : yabai -m window --focus south
|
||||||
|
alt - k : yabai -m window --focus north
|
||||||
|
alt - l : yabai -m window --focus east
|
||||||
|
|
||||||
|
## move windows to predefined places
|
||||||
|
alt - y : yabai -m window --grid 1:4:1:0:2:1 # 2/4 centered
|
||||||
|
alt - u : yabai -m window --grid 1:3:0:0:1:1 # 1/3 left
|
||||||
|
alt - i : yabai -m window --grid 1:3:1:0:1:1 # 1/3 center
|
||||||
|
alt - o : yabai -m window --grid 1:3:2:0:1:1 # 1/3 right
|
||||||
|
ctrl + alt - h : yabai -m window --grid 1:2:0:0:1:1 # 1/2 left
|
||||||
|
ctrl + alt - l : yabai -m window --grid 1:2:1:0:1:1 # 1/2 right
|
||||||
|
|
||||||
|
## swap windows
|
||||||
|
shift + alt - h : yabai -m window --swap west
|
||||||
|
shift + alt - j : yabai -m window --swap south
|
||||||
|
shift + alt - k : yabai -m window --swap north
|
||||||
|
shift + alt - l : yabai -m window --swap east
|
||||||
|
|
||||||
|
## resize windows
|
||||||
|
ctrl + alt - h : yabai -m window --resize left:-50:0; \
|
||||||
|
yabai -m window --resize right:-50:0
|
||||||
|
ctrl + alt - j : yabai -m window --resize bottom:0:50; \
|
||||||
|
yabai -m window --resize top:0:50
|
||||||
|
ctrl + alt - k : yabai -m window --resize top:0:-50; \
|
||||||
|
yabai -m window --resize bottom:0:-50
|
||||||
|
ctrl + alt - l : yabai -m window --resize right:50:0; \
|
||||||
|
yabai -m window --resize left:50:0
|
||||||
1
config/tmux/plugins/tmux-resurrect
Submodule
1
config/tmux/plugins/tmux-resurrect
Submodule
Submodule config/tmux/plugins/tmux-resurrect added at cff343cf9e
@@ -12,5 +12,9 @@
|
|||||||
# License: MIT
|
# License: MIT
|
||||||
|
|
||||||
THEME_FILE="$HOME/.local/state/tmux/tmux-dark-notify-theme.conf"
|
THEME_FILE="$HOME/.local/state/tmux/tmux-dark-notify-theme.conf"
|
||||||
|
THEME_BACKUP="$HOME/.dotfiles/config/tmux/theme-dark.conf"
|
||||||
|
|
||||||
|
# If THEME_FILE doesn't exist, link $THEME_BACKUP to it
|
||||||
|
[[ ! -e $THEME_FILE ]] && ln -s "$THEME_BACKUP" "$THEME_FILE"
|
||||||
|
|
||||||
[[ -e $THEME_FILE ]] && tmux source-file "$THEME_FILE"
|
[[ -e $THEME_FILE ]] && tmux source-file "$THEME_FILE"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
set-option -g status-style 'fg=#4c4f69,bg=#eff1f5'
|
set-option -g status-style 'fg=#4c4f69,bg=default'
|
||||||
set-window-option -g window-status-style 'fg=#4c4f69,bg=#eff1f5 dim'
|
set-window-option -g window-status-style 'fg=#4c4f69,bg=default dim'
|
||||||
set-window-option -g window-status-current-style 'fg=#8839ef,bg=#eff1f5'
|
set-window-option -g window-status-current-style 'fg=#8839ef,bg=default'
|
||||||
set-window-option -g window-status-activity-style 'fg=#4c4f69,bg=#eff1f5 nodim'
|
set-window-option -g window-status-activity-style 'fg=#4c4f69,bg=default nodim'
|
||||||
set-window-option -g window-status-bell-style 'fg=#4c4f69,bg=#eff1f5'
|
set-window-option -g window-status-bell-style 'fg=#4c4f69,bg=default'
|
||||||
set -g message-style 'fg=#8839ef bg=#e6e9ef bold' # fg magenta, bg black
|
set -g message-style 'fg=#8839ef bg=#e6e9ef bold' # fg magenta, bg black
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# Contains configuration from the following sources:
|
# Contains configuration from the following sources:
|
||||||
# - https://tmuxguide.readthedocs.io/en/latest/tmux/tmux.html
|
# - https://tmuxguide.readthedocs.io/en/latest/tmux/tmux.html
|
||||||
# - https://github.com/dreamsofcode-io/tmux/blob/main/tmux.conf
|
# - https://github.com/dreamsofcode-io/tmux/blob/main/tmux.conf
|
||||||
|
#
|
||||||
# ╭──────────────────────────────────────────────────────────╮
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
# │ Settings │
|
# │ Settings │
|
||||||
# ╰──────────────────────────────────────────────────────────╯
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
@@ -15,14 +15,17 @@
|
|||||||
# -o : Set the option only if it is not already set.
|
# -o : Set the option only if it is not already set.
|
||||||
# -u : Unset the specified option.
|
# -u : Unset the specified option.
|
||||||
|
|
||||||
|
set -ag terminal-overrides ",xterm-256color:RGB"
|
||||||
|
set -ag terminal-features 'xterm-256color:RGB'
|
||||||
|
|
||||||
set -g default-terminal "tmux-256color" # Set default terminal to 256 colors
|
set -g default-terminal "tmux-256color" # Set default terminal to 256 colors
|
||||||
set -g detach-on-destroy off # don't detach tmux when killing a session
|
set -g detach-on-destroy off # don't detach tmux when killing a session
|
||||||
set -g display-time 0 # Hide clock
|
set -g display-time 0 # Hide clock
|
||||||
set -g focus-events on # Focus events enabled for terminals that support them
|
set -g focus-events on # Focus events enabled for terminals that support them
|
||||||
set -g mouse on # Mouse support
|
set -g mouse on # Mouse support
|
||||||
set -g set-titles on # Allow tmux to set the terminal title
|
set -g set-titles on # Allow tmux to set the terminal title
|
||||||
set -g status on # Setting status on
|
set -g status on # Setting status on
|
||||||
set -g status-keys vi # vi keys to move between panes
|
set -g status-keys vi # vi keys to move between panes
|
||||||
|
|
||||||
# Activity Monitoring (for when something happens in another pain)
|
# Activity Monitoring (for when something happens in another pain)
|
||||||
set -g monitor-activity on
|
set -g monitor-activity on
|
||||||
@@ -43,18 +46,18 @@ set -g renumber-windows on
|
|||||||
# Activate with `DEBUG=1 tmux -vv`
|
# Activate with `DEBUG=1 tmux -vv`
|
||||||
if-shell '[ "$DEBUG" = "1" ]' 'set -g debug-file ~/.cache/tmux-debug.log'
|
if-shell '[ "$DEBUG" = "1" ]' 'set -g debug-file ~/.cache/tmux-debug.log'
|
||||||
|
|
||||||
|
|
||||||
# ╭──────────────────────────────────────────────────────────╮
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
# │ Theme │
|
# │ Theme │
|
||||||
# ╰──────────────────────────────────────────────────────────╯
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
set -g pane-active-border-style "fg=#7aa2f7"
|
set -g pane-active-border-style "fg=#7aa2f7"
|
||||||
set -g pane-border-style "fg=#3b4261"
|
set -g pane-border-style "fg=#3b4261"
|
||||||
|
set -g status-style "bg=default"
|
||||||
set -g status-justify "left"
|
set -g status-justify "left"
|
||||||
set -g status-left ''
|
set -g status-left ''
|
||||||
set -g status-left-length "0"
|
set -g status-left-length "0"
|
||||||
set -g status-position "bottom"
|
set -g status-position "bottom"
|
||||||
set -g status-right "#S@#{hostname_short} #{tmux_mode_indicator}"
|
set -g status-right "#S@#h #{tmux_mode_indicator}"
|
||||||
set -g status-right-length "30"
|
set -g status-right-length "30"
|
||||||
set -g window-status-current-format ' #I:#W#{?window_zoomed_flag, ◈ ,} '
|
set -g window-status-current-format ' #I:#W#{?window_zoomed_flag, ◈ ,} '
|
||||||
set -g window-status-format ' #I:#W '
|
set -g window-status-format ' #I:#W '
|
||||||
@@ -63,6 +66,7 @@ set -g window-status-format ' #I:#W '
|
|||||||
# │ Bindings │
|
# │ Bindings │
|
||||||
# ╰──────────────────────────────────────────────────────────╯
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
# bind flags
|
# bind flags
|
||||||
|
# -N = Note / description of the command
|
||||||
# -r = repeatable, only needs prefix once
|
# -r = repeatable, only needs prefix once
|
||||||
# -n = doesn't need prefix
|
# -n = doesn't need prefix
|
||||||
# -t = binds to a certain key-table (root, copy-mode, prefix, etc.)
|
# -t = binds to a certain key-table (root, copy-mode, prefix, etc.)
|
||||||
@@ -73,10 +77,10 @@ set -g prefix C-Space
|
|||||||
bind C-Space send-prefix
|
bind C-Space send-prefix
|
||||||
|
|
||||||
# Use Alt-arrow keys without prefix key to switch panes
|
# Use Alt-arrow keys without prefix key to switch panes
|
||||||
bind -n M-Left select-pane -L
|
bind -n M-Left select-pane -L
|
||||||
bind -n M-Right select-pane -R
|
bind -n M-Right select-pane -R
|
||||||
bind -n M-Up select-pane -U
|
bind -n M-Up select-pane -U
|
||||||
bind -n M-Down select-pane -D
|
bind -n M-Down select-pane -D
|
||||||
|
|
||||||
# Easier switching between window
|
# Easier switching between window
|
||||||
bind C-n next-window
|
bind C-n next-window
|
||||||
@@ -95,6 +99,11 @@ bind Escape copy-mode
|
|||||||
unbind p
|
unbind p
|
||||||
bind p paste-buffer
|
bind p paste-buffer
|
||||||
|
|
||||||
|
# tms bindings
|
||||||
|
bind -N "tms" t display-popup -E "tms"
|
||||||
|
bind -N "tms windows" C-w display-popup -E "tms windows"
|
||||||
|
bind -N "tms switch" C-s display-popup -E "tms switch"
|
||||||
|
bind -N "tms refresh" C-r display-popup -E "tms refresh"
|
||||||
|
|
||||||
# ╭──────────────────────────────────────────────────────────╮
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
# │ Plugins │
|
# │ Plugins │
|
||||||
@@ -120,7 +129,7 @@ set -g @tmux_window_name_use_tilde "True"
|
|||||||
|
|
||||||
# https://github.com/erikw/tmux-dark-notify
|
# https://github.com/erikw/tmux-dark-notify
|
||||||
set -g @dark-notify-theme-path-light "$HOME/.dotfiles/config/tmux/theme-light.conf"
|
set -g @dark-notify-theme-path-light "$HOME/.dotfiles/config/tmux/theme-light.conf"
|
||||||
set -g @dark-notify-theme-path-dark "$HOME/.dotfiles/config/tmux/theme-dark.conf"
|
set -g @dark-notify-theme-path-dark "$HOME/.dotfiles/config/tmux/theme-dark.conf"
|
||||||
|
|
||||||
## https://github.com/MunifTanjim/tmux-mode-indicator
|
## https://github.com/MunifTanjim/tmux-mode-indicator
|
||||||
set -g @mode_indicator_copy_mode_style 'bg=default,fg=yellow'
|
set -g @mode_indicator_copy_mode_style 'bg=default,fg=yellow'
|
||||||
@@ -132,24 +141,30 @@ set -g @mode_indicator_sync_mode_style 'bg=default,fg=red'
|
|||||||
set -g @fzf-url-bind 'u'
|
set -g @fzf-url-bind 'u'
|
||||||
set -g @fzf-url-history-limit '2000'
|
set -g @fzf-url-history-limit '2000'
|
||||||
|
|
||||||
# ── Sourcing the plugins ──────────────────────────────────────────────
|
# https://github.com/tmux-plugins/tmux-continuum
|
||||||
|
set -g @continuum-restore 'on'
|
||||||
|
|
||||||
run-shell "$HOME/.config/tmux/plugins/tmux-sensible/sensible.tmux"
|
# ── Own scripts ───────────────────────────────────────────────────────
|
||||||
run-shell "$HOME/.config/tmux/plugins/tmux-window-name/tmux_window_name.tmux"
|
|
||||||
run-shell "$HOME/.config/tmux/plugins/tmux-mode-indicator/mode_indicator.tmux"
|
|
||||||
run-shell "$HOME/.config/tmux/plugins/tmux-suspend/suspend.tmux"
|
|
||||||
run-shell "$HOME/.config/tmux/plugins/tmux-continuum/continuum.tmux"
|
|
||||||
run-shell "$HOME/.config/tmux/plugins/tmux-sessionist/sessionist.tmux"
|
|
||||||
run-shell "$HOME/.config/tmux/plugins/tmux-yank/yank.tmux"
|
|
||||||
run-shell "$HOME/.config/tmux/plugins/tmux-current-pane-hostname/current_pane_hostname.tmux"
|
|
||||||
run-shell "$HOME/.config/tmux/plugins/tmux-dark-notify/main.tmux"
|
|
||||||
run-shell "$HOME/.config/tmux/plugins/tmux-fzf-url/fzf-url.tmux"
|
|
||||||
|
|
||||||
|
# If we started tmux with a session name, rename it.
|
||||||
|
run-shell "$HOME/.dotfiles/config/tmux/rename-session.sh"
|
||||||
|
|
||||||
# Load theme based on tmux-dark-notify state.
|
# Load theme based on tmux-dark-notify state.
|
||||||
# This script helps states where dark-notify is not available,
|
# This script helps states where dark-notify is not available,
|
||||||
# and we want to have light or dark state constantly available.
|
# and we want to have light or dark state constantly available.
|
||||||
run-shell "$HOME/.config/tmux/theme-activate.sh"
|
run-shell "$HOME/.dotfiles/config/tmux/theme-activate.sh"
|
||||||
|
|
||||||
# If we started tmux with a session name, rename it.
|
# ── Sourcing the plugins ──────────────────────────────────────────────
|
||||||
run-shell "$HOME/.config/tmux/rename-session.sh"
|
|
||||||
|
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-sensible/sensible.tmux"
|
||||||
|
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-window-name/tmux_window_name.tmux"
|
||||||
|
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-mode-indicator/mode_indicator.tmux"
|
||||||
|
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-suspend/suspend.tmux"
|
||||||
|
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-continuum/continuum.tmux"
|
||||||
|
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-resurrect/resurrect.tmux"
|
||||||
|
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-sessionist/sessionist.tmux"
|
||||||
|
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-yank/yank.tmux"
|
||||||
|
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-current-pane-hostname/current_pane_hostname.tmux"
|
||||||
|
run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-fzf-url/fzf-url.tmux"
|
||||||
|
|
||||||
|
# run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-dark-notify/main.tmux"
|
||||||
|
|||||||
3
config/vim/.gitignore
vendored
Normal file
3
config/vim/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
plugged
|
||||||
|
extra/*
|
||||||
|
!extra/.gitkeep
|
||||||
64
config/vim/after/autocmd.vim
Normal file
64
config/vim/after/autocmd.vim
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
"" The PC is fast enough, do syntax highlight
|
||||||
|
"" syncing from start 6nless 200 lines
|
||||||
|
augroup vimrc-sync-fromstart
|
||||||
|
autocmd!
|
||||||
|
autocmd BufEnter * :syntax sync maxlines=600
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
"" txt
|
||||||
|
augroup vimrc-wrapping
|
||||||
|
autocmd!
|
||||||
|
autocmd BufRead,BufNewFile *.txt call s:setupWrapping()
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
"" make/cmake
|
||||||
|
augroup vimrc-make-cmake
|
||||||
|
autocmd!
|
||||||
|
autocmd FileType make setlocal noexpandtab
|
||||||
|
autocmd BufNewFile,BufRead CMakeLists.txt setlocal filetype=cmake
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
set autoread
|
||||||
|
|
||||||
|
""" Create/get autocommand group
|
||||||
|
function! s:CreateAugroup(name) abort
|
||||||
|
execute 'augroup' a:name
|
||||||
|
autocmd!
|
||||||
|
augroup END
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Highlight on yank
|
||||||
|
" See `:help vim.highlight.on_yank()`
|
||||||
|
call s:CreateAugroup('YankHighlight')
|
||||||
|
autocmd YankHighlight TextYankPost * silent! lua vim.highlight.on_yank()
|
||||||
|
|
||||||
|
" Set the numberwidth to the maximum line number.
|
||||||
|
" Fixes the issue where the line numbers jump
|
||||||
|
" around when moving between lines with relative line numbers enabled.
|
||||||
|
call s:CreateAugroup('AdjustNumberWidth')
|
||||||
|
autocmd AdjustNumberWidth BufEnter,BufWinEnter,TabEnter *
|
||||||
|
\ let max_line_count = line('$') |
|
||||||
|
\ if max_line_count > 99 |
|
||||||
|
\ let &numberwidth = strlen(string(max_line_count)) + 1
|
||||||
|
\ endif
|
||||||
|
|
||||||
|
" Windows to close with "q"
|
||||||
|
call s:CreateAugroup('close_with_q')
|
||||||
|
autocmd close_with_q FileType checkhealth,dbout,gitsigns.blame,grug-far,help,
|
||||||
|
\ lspinfo,man,neotest-output,neotest-output-panel,neotest-summary,notify,
|
||||||
|
\ qf,spectre_panel,startuptime,tsplayground
|
||||||
|
\ setlocal buflisted=false |
|
||||||
|
\ nnoremap <silent> <buffer> q :close<CR>
|
||||||
|
|
||||||
|
" Make it easier to close man-files when opened inline
|
||||||
|
call s:CreateAugroup('man_unlisted')
|
||||||
|
autocmd man_unlisted FileType man setlocal buflisted=false
|
||||||
|
|
||||||
|
" Wrap and check for spell in text filetypes
|
||||||
|
call s:CreateAugroup('wrap_spell')
|
||||||
|
autocmd wrap_spell FileType text,plaintex,typst,gitcommit,markdown,asciidoc,rst,tex
|
||||||
|
\ setlocal wrap spell
|
||||||
|
|
||||||
|
" Fix conceallevel for json files
|
||||||
|
call s:CreateAugroup('json_conceal')
|
||||||
|
autocmd json_conceal FileType json,jsonc,json5 setlocal conceallevel=0
|
||||||
26
config/vim/after/colors.vim
Normal file
26
config/vim/after/colors.vim
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
function! ChangeColorScheme(channel, msg)
|
||||||
|
let time = trim(a:msg)
|
||||||
|
if time ==# "Dark"
|
||||||
|
set background="dark"
|
||||||
|
else
|
||||||
|
set background="light"
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! CheckStatus(timer)
|
||||||
|
if executable("defaults")
|
||||||
|
let job = job_start(
|
||||||
|
\ ["defaults", "read", "-g", "AppleInterfaceStyle"],
|
||||||
|
\ {"out_cb": "ChangeColorScheme"}
|
||||||
|
\ )
|
||||||
|
else
|
||||||
|
set background="dark"
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! AutoDarkModeSetup()
|
||||||
|
let timer = timer_start(3000, 'CheckStatus', {'repeat': -1})
|
||||||
|
call CheckStatus(timer) " Initial call to setup the theme
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
call AutoDarkModeSetup()
|
||||||
113
config/vim/after/mappings.vim
Normal file
113
config/vim/after/mappings.vim
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
"*****************************************************************************
|
||||||
|
"" Abbreviations
|
||||||
|
"*****************************************************************************
|
||||||
|
"" no one is really happy until you have this shortcuts
|
||||||
|
cnoreabbrev W! w! " force write
|
||||||
|
cnoreabbrev Q! q! " force quit
|
||||||
|
cnoreabbrev Qall! qall! " force quit all
|
||||||
|
cnoreabbrev Wq wq " write and quit
|
||||||
|
cnoreabbrev Wa wa " write all
|
||||||
|
cnoreabbrev wQ wq " write and quit
|
||||||
|
cnoreabbrev WQ wq " write and quit
|
||||||
|
cnoreabbrev W w " write
|
||||||
|
cnoreabbrev Q q " quit
|
||||||
|
cnoreabbrev Qall qall " quit all
|
||||||
|
|
||||||
|
"*****************************************************************************
|
||||||
|
"" Mappings
|
||||||
|
"*****************************************************************************
|
||||||
|
|
||||||
|
noremap <C-s> :w<CR> " save buffer
|
||||||
|
|
||||||
|
" Split
|
||||||
|
noremap <Leader>h :<C-u>split<CR> " horizontal split
|
||||||
|
noremap <Leader>v :<C-u>vsplit<CR> " vertical split
|
||||||
|
|
||||||
|
" Git
|
||||||
|
noremap <Leader>ga :Gwrite<CR>
|
||||||
|
noremap <Leader>gc :Git commit --verbose<CR>
|
||||||
|
noremap <Leader>gsh :Git push<CR>
|
||||||
|
noremap <Leader>gll :Git pull<CR>
|
||||||
|
noremap <Leader>gs :Git<CR>
|
||||||
|
noremap <Leader>gb :Git blame<CR>
|
||||||
|
noremap <Leader>gd :Gvdiffsplit<CR>
|
||||||
|
noremap <Leader>gr :GRemove<CR>
|
||||||
|
|
||||||
|
" session management
|
||||||
|
nnoremap <leader>so :OpenSession<Space>
|
||||||
|
nnoremap <leader>ss :SaveSession<Space>
|
||||||
|
nnoremap <leader>sd :DeleteSession<CR>
|
||||||
|
nnoremap <leader>sc :CloseSession<CR>
|
||||||
|
|
||||||
|
" Tabs
|
||||||
|
nnoremap <Tab> gt " next tab
|
||||||
|
nnoremap <S-Tab> gT " previous tab
|
||||||
|
nnoremap <silent> <S-t> :tabnew<CR> " new tab
|
||||||
|
|
||||||
|
nnoremap <leader>. :lcd %:p:h<CR> " set working directory to the current file
|
||||||
|
|
||||||
|
" Opens an edit command with the path of the currently
|
||||||
|
" edited file filled in
|
||||||
|
noremap <Leader>e :e <C-R>=expand("%:p:h") . "/" <CR>
|
||||||
|
|
||||||
|
" Opens a tab edit command with the path of the currently
|
||||||
|
" edited file filled
|
||||||
|
noremap <Leader>r :tabe <C-R>=expand("%:p:h") . "/" <CR>
|
||||||
|
|
||||||
|
" fzf.vim
|
||||||
|
let $FZF_DEFAULT_COMMAND = "find * -path '*/\.*' -prune -o -path 'node_modules/**' -prune -o -path 'target/**' -prune -o -path 'vendor/**' -prune -o -path 'dist/**' -prune -o -type f -print -o -type l -print 2> /dev/null"
|
||||||
|
|
||||||
|
cnoremap <C-p> <C-R>=expand("%:p:h") . "/" <CR>
|
||||||
|
nnoremap <silent> <leader>b :Buffers<CR>
|
||||||
|
nnoremap <silent> <leader>e :FZF -m<CR>
|
||||||
|
" Recovery commands from history through FZF
|
||||||
|
nmap <leader>y :History:<CR>
|
||||||
|
|
||||||
|
" Tagbar
|
||||||
|
nmap <silent> <F4> :TagbarToggle<CR> " open tagbar
|
||||||
|
let g:tagbar_autofocus = 1
|
||||||
|
|
||||||
|
" Disable visualbell
|
||||||
|
set noerrorbells visualbell t_vb=
|
||||||
|
if has('autocmd')
|
||||||
|
autocmd GUIEnter * set visualbell t_vb=
|
||||||
|
endif
|
||||||
|
|
||||||
|
"" Copy/Paste/Cut
|
||||||
|
if has('unnamedplus')
|
||||||
|
set clipboard=unnamed,unnamedplus
|
||||||
|
endif
|
||||||
|
|
||||||
|
noremap YY "+y<CR> " copy line
|
||||||
|
noremap <leader>p "+gP<CR> " paste
|
||||||
|
noremap XX "+x<CR> " cut
|
||||||
|
|
||||||
|
if has('macunix')
|
||||||
|
" pbcopy for OSX copy/paste
|
||||||
|
vmap <C-x> :!pbcopy<CR> " copy
|
||||||
|
vmap <C-c> :w !pbcopy<CR><CR> " cut
|
||||||
|
vmap <C-v> :!pbpaste<CR> " paste
|
||||||
|
endif
|
||||||
|
|
||||||
|
"" Buffer nav
|
||||||
|
noremap <leader>z :bp<CR> " previous buffer
|
||||||
|
noremap <leader>x :bn<CR> " next buffer
|
||||||
|
noremap <leader>bq :bp<CR> " previous buffer
|
||||||
|
noremap <leader>bw :bn<CR> " next buffer
|
||||||
|
noremap <leader>bd :bd<CR> " close buffer
|
||||||
|
|
||||||
|
|
||||||
|
"" Switching windows
|
||||||
|
noremap <C-j> <C-w>j " move to window below
|
||||||
|
noremap <C-k> <C-w>k " move to window above
|
||||||
|
noremap <C-l> <C-w>l " move to window right
|
||||||
|
noremap <C-h> <C-w>h " move to window left
|
||||||
|
|
||||||
|
vmap < <gv " move visual block left, keep selection
|
||||||
|
vmap > >gv " move visual block right, keep selection
|
||||||
|
vnoremap J :m '>+1<CR>gv=gv " move visual block down, keep selection
|
||||||
|
vnoremap K :m '<-2<CR>gv=gv " move visual block up, keep selection
|
||||||
|
|
||||||
|
nnoremap <Leader>o :.GBrowse<CR> " open current line on GitHub
|
||||||
|
nnoremap <silent> <leader>sh :terminal<CR> " open a new terminal
|
||||||
|
nnoremap <silent> <esc><esc> :noh<cr> " clean search
|
||||||
0
config/vim/after/settings.vim
Normal file
0
config/vim/after/settings.vim
Normal file
34
config/vim/after/ui.vim
Normal file
34
config/vim/after/ui.vim
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
" GUI settings
|
||||||
|
if has("gui_running")
|
||||||
|
if has("gui_mac") || has("gui_macvim")
|
||||||
|
set macligatures
|
||||||
|
set guifont=JetBrains\ Mono:h14
|
||||||
|
set transparency=7
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
let g:CSApprox_loaded = 1
|
||||||
|
|
||||||
|
" IndentLine
|
||||||
|
let g:indentLine_enabled = 1
|
||||||
|
let g:indentLine_concealcursor = ''
|
||||||
|
let g:indentLine_char = '┆'
|
||||||
|
let g:indentLine_faster = 1
|
||||||
|
|
||||||
|
if $COLORTERM == 'gnome-terminal'
|
||||||
|
set term=gnome-256color
|
||||||
|
else
|
||||||
|
if $TERM == 'xterm'
|
||||||
|
set term=xterm-256color
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" if terminal supports 256 colors, disable t_ut
|
||||||
|
if &term =~ '256color'
|
||||||
|
set t_ut=
|
||||||
|
endif
|
||||||
|
|
||||||
|
" set the title of the terminal to the file name
|
||||||
|
set title
|
||||||
|
set titleold="Terminal"
|
||||||
|
set titlestring=%F
|
||||||
175
config/vim/autoload/airline/themes/pencil.vim
Normal file
175
config/vim/autoload/airline/themes/pencil.vim
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
let g:airline#themes#pencil#palette = {}
|
||||||
|
|
||||||
|
function! airline#themes#pencil#refresh()
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" Options
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
let s:background = get(g:, 'airline_pencil_bg', &background)
|
||||||
|
let s:ansi_colors = &t_Co < 16 ? 1 : 0
|
||||||
|
let s:tty = &t_Co == 8
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" Colors
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" Base colors
|
||||||
|
let s:base03 = {'t': s:ansi_colors ? 8 : (s:tty ? '0' : 234), 'g': '#212121'}
|
||||||
|
let s:base02 = {'t': s:ansi_colors ? '0' : (s:tty ? '0' : 235), 'g': '#424242'}
|
||||||
|
let s:base01 = {'t': s:ansi_colors ? 10 : (s:tty ? '0' : 240), 'g': '#909090'}
|
||||||
|
let s:base00 = {'t': s:ansi_colors ? 11 : (s:tty ? '7' : 241), 'g': '#545454'}
|
||||||
|
let s:base0 = {'t': s:ansi_colors ? 12 : (s:tty ? '7' : 244), 'g': '#B2B2B2'}
|
||||||
|
let s:base1 = {'t': s:ansi_colors ? 14 : (s:tty ? '7' : 245), 'g': '#636363'}
|
||||||
|
let s:base2 = {'t': s:ansi_colors ? 7 : (s:tty ? '7' : 254), 'g': '#D9D9D9'}
|
||||||
|
let s:base3 = {'t': s:ansi_colors ? 15 : (s:tty ? '7' : 7 ), 'g': '#C6C6C6'}
|
||||||
|
let s:darkblue= {'t': s:ansi_colors ? 4 : (s:tty ? '4' : 24 ), 'g': '#005F87'}
|
||||||
|
let s:orange = {'t': s:ansi_colors ? 9 : (s:tty ? '1' : 166), 'g': '#D75F5F'}
|
||||||
|
let s:red = {'t': s:ansi_colors ? 1 : (s:tty ? '1' : 160), 'g': '#C30771'}
|
||||||
|
let s:magenta = {'t': s:ansi_colors ? 5 : (s:tty ? '5' : 125), 'g': '#E32791'}
|
||||||
|
let s:violet = {'t': s:ansi_colors ? 13 : (s:tty ? '5' : 61 ), 'g': '#6855DE'}
|
||||||
|
let s:blue = {'t': s:ansi_colors ? 4 : (s:tty ? '4' : 33 ), 'g': '#008EC4'}
|
||||||
|
let s:cyan = {'t': s:ansi_colors ? 6 : (s:tty ? '6' : 37 ), 'g': '#20A5BA'}
|
||||||
|
let s:green = {'t': s:ansi_colors ? 2 : (s:tty ? '2' : 64 ), 'g': '#10A778'}
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" Simple mappings
|
||||||
|
" NOTE: These are easily tweakable mappings. The actual mappings get
|
||||||
|
" the specific gui and terminal colors from the base color dicts.
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" Normal mode
|
||||||
|
if s:background == 'dark'
|
||||||
|
let s:N1 = [s:base3, s:base1, 'bold']
|
||||||
|
let s:N2 = [s:base2, (s:tty ? s:base01 : s:base00), '']
|
||||||
|
let s:N3 = [s:base01, s:base02, '']
|
||||||
|
else
|
||||||
|
let s:N1 = [s:base2, s:base00, 'bold']
|
||||||
|
let s:N2 = [(s:tty ? s:base01 : s:base2), s:base1, '']
|
||||||
|
let s:N3 = [s:base1, s:base2, '']
|
||||||
|
endif
|
||||||
|
let s:NF = [s:orange, s:N3[1], '']
|
||||||
|
let s:NW = [s:base3, s:orange, '']
|
||||||
|
if s:background == 'dark'
|
||||||
|
let s:NM = [s:base1, s:N3[1], '']
|
||||||
|
let s:NMi = [s:base2, s:N3[1], '']
|
||||||
|
else
|
||||||
|
let s:NM = [s:base01, s:N3[1], '']
|
||||||
|
let s:NMi = [s:base02, s:N3[1], '']
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Insert mode
|
||||||
|
let s:I1 = [s:N1[0], s:darkblue, 'bold']
|
||||||
|
let s:I2 = s:N2
|
||||||
|
let s:I3 = s:N3
|
||||||
|
let s:IF = s:NF
|
||||||
|
let s:IM = s:NM
|
||||||
|
|
||||||
|
" Visual mode
|
||||||
|
let s:V1 = [s:N1[0], s:magenta, 'bold']
|
||||||
|
let s:V2 = s:N2
|
||||||
|
let s:V3 = s:N3
|
||||||
|
let s:VF = s:NF
|
||||||
|
let s:VM = s:NM
|
||||||
|
|
||||||
|
" Replace mode
|
||||||
|
let s:R1 = [s:N1[0], s:red, '']
|
||||||
|
let s:R2 = s:N2
|
||||||
|
let s:R3 = s:N3
|
||||||
|
let s:RM = s:NM
|
||||||
|
let s:RF = s:NF
|
||||||
|
|
||||||
|
" Inactive, according to VertSplit in pencil
|
||||||
|
" (bg dark: base00; bg light: base0)
|
||||||
|
if s:background == 'dark'
|
||||||
|
let s:IA = [s:base01, s:base02, '']
|
||||||
|
else
|
||||||
|
let s:IA = [s:base1, s:base2, '']
|
||||||
|
endif
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" Actual mappings
|
||||||
|
" WARNING: Don't modify this section unless necessary.
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
let s:NFa = [s:NF[0].g, s:NF[1].g, s:NF[0].t, s:NF[1].t, s:NF[2]]
|
||||||
|
let s:IFa = [s:IF[0].g, s:IF[1].g, s:IF[0].t, s:IF[1].t, s:IF[2]]
|
||||||
|
let s:VFa = [s:VF[0].g, s:VF[1].g, s:VF[0].t, s:VF[1].t, s:VF[2]]
|
||||||
|
let s:RFa = [s:RF[0].g, s:RF[1].g, s:RF[0].t, s:RF[1].t, s:RF[2]]
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.accents = {
|
||||||
|
\ 'red': s:NFa,
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.inactive = airline#themes#generate_color_map(
|
||||||
|
\ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]],
|
||||||
|
\ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]],
|
||||||
|
\ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]])
|
||||||
|
let g:airline#themes#pencil#palette.inactive_modified = {
|
||||||
|
\ 'airline_c': [s:NMi[0].g, '', s:NMi[0].t, '', s:NMi[2]]}
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.normal = airline#themes#generate_color_map(
|
||||||
|
\ [s:N1[0].g, s:N1[1].g, s:N1[0].t, s:N1[1].t, s:N1[2]],
|
||||||
|
\ [s:N2[0].g, s:N2[1].g, s:N2[0].t, s:N2[1].t, s:N2[2]],
|
||||||
|
\ [s:N3[0].g, s:N3[1].g, s:N3[0].t, s:N3[1].t, s:N3[2]])
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.normal.airline_warning = [
|
||||||
|
\ s:NW[0].g, s:NW[1].g, s:NW[0].t, s:NW[1].t, s:NW[2]]
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.normal_modified = {
|
||||||
|
\ 'airline_c': [s:NM[0].g, s:NM[1].g,
|
||||||
|
\ s:NM[0].t, s:NM[1].t, s:NM[2]]}
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.normal_modified.airline_warning =
|
||||||
|
\ g:airline#themes#pencil#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.insert = airline#themes#generate_color_map(
|
||||||
|
\ [s:I1[0].g, s:I1[1].g, s:I1[0].t, s:I1[1].t, s:I1[2]],
|
||||||
|
\ [s:I2[0].g, s:I2[1].g, s:I2[0].t, s:I2[1].t, s:I2[2]],
|
||||||
|
\ [s:I3[0].g, s:I3[1].g, s:I3[0].t, s:I3[1].t, s:I3[2]])
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.insert.airline_warning =
|
||||||
|
\ g:airline#themes#pencil#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.insert_modified = {
|
||||||
|
\ 'airline_c': [s:IM[0].g, s:IM[1].g,
|
||||||
|
\ s:IM[0].t, s:IM[1].t, s:IM[2]]}
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.insert_modified.airline_warning =
|
||||||
|
\ g:airline#themes#pencil#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.visual = airline#themes#generate_color_map(
|
||||||
|
\ [s:V1[0].g, s:V1[1].g, s:V1[0].t, s:V1[1].t, s:V1[2]],
|
||||||
|
\ [s:V2[0].g, s:V2[1].g, s:V2[0].t, s:V2[1].t, s:V2[2]],
|
||||||
|
\ [s:V3[0].g, s:V3[1].g, s:V3[0].t, s:V3[1].t, s:V3[2]])
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.visual.airline_warning =
|
||||||
|
\ g:airline#themes#pencil#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.visual_modified = {
|
||||||
|
\ 'airline_c': [s:VM[0].g, s:VM[1].g,
|
||||||
|
\ s:VM[0].t, s:VM[1].t, s:VM[2]]}
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.visual_modified.airline_warning =
|
||||||
|
\ g:airline#themes#pencil#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.replace = airline#themes#generate_color_map(
|
||||||
|
\ [s:R1[0].g, s:R1[1].g, s:R1[0].t, s:R1[1].t, s:R1[2]],
|
||||||
|
\ [s:R2[0].g, s:R2[1].g, s:R2[0].t, s:R2[1].t, s:R2[2]],
|
||||||
|
\ [s:R3[0].g, s:R3[1].g, s:R3[0].t, s:R3[1].t, s:R3[2]])
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.replace.airline_warning =
|
||||||
|
\ g:airline#themes#pencil#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.replace_modified = {
|
||||||
|
\ 'airline_c': [s:RM[0].g, s:RM[1].g,
|
||||||
|
\ s:RM[0].t, s:RM[1].t, s:RM[2]]}
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.replace_modified.airline_warning =
|
||||||
|
\ g:airline#themes#pencil#palette.normal.airline_warning
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.tabline = {}
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.tabline.airline_tab = [
|
||||||
|
\ s:I2[0].g, s:I2[1].g, s:I2[0].t, s:I2[1].t, s:I2[2]]
|
||||||
|
|
||||||
|
let g:airline#themes#pencil#palette.tabline.airline_tabtype = [
|
||||||
|
\ s:N2[0].g, s:N2[1].g, s:N2[0].t, s:N2[1].t, s:N2[2]]
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
call airline#themes#pencil#refresh()
|
||||||
2877
config/vim/autoload/plug.vim
Normal file
2877
config/vim/autoload/plug.vim
Normal file
File diff suppressed because it is too large
Load Diff
383
config/vim/colors/pencil.vim
Normal file
383
config/vim/colors/pencil.vim
Normal file
@@ -0,0 +1,383 @@
|
|||||||
|
" Vim Color File
|
||||||
|
" Name: pencil.vim
|
||||||
|
" Version: 0.6
|
||||||
|
" Maintainer: github.com/preservim
|
||||||
|
" License: The MIT License (MIT)
|
||||||
|
|
||||||
|
" Original iA Writer colors, to use as a guide
|
||||||
|
" White #F1F1F1
|
||||||
|
" OffWhiteIPad #F5F2EC
|
||||||
|
" OffWhiteDemo #F9F8F4
|
||||||
|
" Cursor #20BBFC
|
||||||
|
" Selection #B6D6FD
|
||||||
|
" SelectionNOS #D4D4D4
|
||||||
|
" StatusBar #EDEDED
|
||||||
|
" StatusBarBorder #D9D9D9 used for search too
|
||||||
|
" Text #424242
|
||||||
|
" Blue #B5D6FD
|
||||||
|
" Green #30C798
|
||||||
|
" Blue2 #1DAEE4
|
||||||
|
" gray #999999
|
||||||
|
" Red #E32791
|
||||||
|
" UnfocusedText #B8B8B8
|
||||||
|
" MenuSelected #2C81FB
|
||||||
|
" MenuUnSelected #545454
|
||||||
|
" MenuText #F1F1F1
|
||||||
|
" LightKeyBg #4B4B4B
|
||||||
|
" DarkKeyBg #262626
|
||||||
|
" NearBlack #181818
|
||||||
|
" SyntaxButton #363738
|
||||||
|
" SearchHighlight #F3E430 yellow
|
||||||
|
|
||||||
|
hi clear
|
||||||
|
|
||||||
|
if exists('syntax on')
|
||||||
|
syntax reset
|
||||||
|
endif
|
||||||
|
|
||||||
|
let g:colors_name='pencil'
|
||||||
|
|
||||||
|
if ! exists("g:pencil_higher_contrast_ui")
|
||||||
|
let g:pencil_higher_contrast_ui = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ! exists("g:pencil_neutral_code_bg")
|
||||||
|
let g:pencil_neutral_code_bg = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ! exists("g:pencil_neutral_headings")
|
||||||
|
let g:pencil_neutral_headings = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
" not all terminals support italics properly. If yours does, opt-in.
|
||||||
|
if ! exists("g:pencil_terminal_italics")
|
||||||
|
let g:pencil_terminal_italics = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ! exists("g:pencil_spell_undercurl")
|
||||||
|
let g:pencil_spell_undercurl = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ! exists("g:pencil_gutter_color")
|
||||||
|
let g:pencil_gutter_color = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Colors
|
||||||
|
let s:black = { "gui": "#212121", "cterm": "0" }
|
||||||
|
let s:medium_gray = { "gui": "#767676", "cterm": "243" }
|
||||||
|
let s:white = { "gui": "#F1F1F1", "cterm": "15" }
|
||||||
|
let s:actual_white = { "gui": "#FFFFFF", "cterm": "231" }
|
||||||
|
let s:light_black = { "gui": "#424242", "cterm": "8" }
|
||||||
|
let s:lighter_black = { "gui": "#545454", "cterm": "240" }
|
||||||
|
|
||||||
|
if g:pencil_higher_contrast_ui == 0
|
||||||
|
" darker shadow and whiter grays
|
||||||
|
let s:subtle_black = { "gui": "#262626", "cterm": "235" }
|
||||||
|
let s:light_gray = { "gui": "#D9D9D9", "cterm": "253" }
|
||||||
|
let s:lighter_gray = { "gui": "#E5E6E6", "cterm": "254" }
|
||||||
|
else
|
||||||
|
" lighter shadows and darker grays
|
||||||
|
let s:subtle_black = { "gui": "#303030", "cterm": "236" }
|
||||||
|
let s:light_gray = { "gui": "#B2B2B2", "cterm": "249" }
|
||||||
|
let s:lighter_gray = { "gui": "#C6C6C6", "cterm": "251" }
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:pink = { "gui": "#fb007a", "cterm": "9" }
|
||||||
|
let s:dark_red = { "gui": "#C30771", "cterm": "1" }
|
||||||
|
let s:light_red = { "gui": "#E32791", "cterm": "1" }
|
||||||
|
let s:orange = { "gui": "#D75F5F", "cterm": "167" }
|
||||||
|
|
||||||
|
let s:darker_blue = { "gui": "#005F87", "cterm": "18" }
|
||||||
|
let s:dark_blue = { "gui": "#008EC4", "cterm": "4" }
|
||||||
|
let s:blue = { "gui": "#20BBFC", "cterm": "12" }
|
||||||
|
let s:light_blue = { "gui": "#b6d6fd", "cterm": "153" }
|
||||||
|
let s:dark_cyan = { "gui": "#20A5BA", "cterm": "6" }
|
||||||
|
let s:light_cyan = { "gui": "#4FB8CC", "cterm": "14" }
|
||||||
|
|
||||||
|
let s:dark_green = { "gui": "#10A778", "cterm": "2" }
|
||||||
|
let s:light_green = { "gui": "#5FD7A7", "cterm": "10" }
|
||||||
|
|
||||||
|
let s:dark_purple = { "gui": "#523C79", "cterm": "5" }
|
||||||
|
let s:light_purple = { "gui": "#6855DE", "cterm": "13" }
|
||||||
|
|
||||||
|
let s:yellow = { "gui": "#F3E430", "cterm": "11" }
|
||||||
|
let s:dark_yellow = { "gui": "#A89C14", "cterm": "3" }
|
||||||
|
|
||||||
|
if &background == "dark"
|
||||||
|
let s:bg = s:black
|
||||||
|
let s:bg_subtle = s:light_black
|
||||||
|
let s:bg_very_subtle = s:subtle_black
|
||||||
|
let s:norm = s:lighter_gray
|
||||||
|
let s:norm_subtle = s:light_gray
|
||||||
|
let s:purple = s:light_purple
|
||||||
|
let s:cyan = s:light_cyan
|
||||||
|
let s:green = s:light_green
|
||||||
|
let s:red = s:light_red
|
||||||
|
let s:visual = s:lighter_black
|
||||||
|
else
|
||||||
|
let s:bg = s:white
|
||||||
|
let s:bg_subtle = s:light_gray
|
||||||
|
let s:bg_very_subtle = s:lighter_gray
|
||||||
|
let s:norm = s:light_black
|
||||||
|
let s:norm_subtle = s:lighter_black
|
||||||
|
let s:purple = s:dark_purple
|
||||||
|
let s:cyan = s:dark_cyan
|
||||||
|
let s:green = s:dark_green
|
||||||
|
let s:red = s:dark_red
|
||||||
|
let s:visual = s:light_blue
|
||||||
|
endif
|
||||||
|
|
||||||
|
if g:pencil_neutral_headings == 1
|
||||||
|
let s:head_a = s:norm
|
||||||
|
let s:head_b = s:norm
|
||||||
|
let s:head_c = s:norm
|
||||||
|
else
|
||||||
|
let s:head_a = s:dark_blue
|
||||||
|
let s:head_b = s:blue
|
||||||
|
let s:head_c = s:dark_cyan
|
||||||
|
endif
|
||||||
|
|
||||||
|
if g:pencil_neutral_code_bg == 1
|
||||||
|
let s:code_bg = s:bg
|
||||||
|
else
|
||||||
|
let s:code_bg = s:bg_very_subtle
|
||||||
|
endif
|
||||||
|
|
||||||
|
if g:pencil_spell_undercurl == 1
|
||||||
|
let s:sp_un = 'undercurl'
|
||||||
|
else
|
||||||
|
let s:sp_un = 'underline'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" shamelessly stolen from hemisu: https://github.com/noahfrederick/vim-hemisu/
|
||||||
|
function! s:h(group, style)
|
||||||
|
" Not all terminals support italics properly. If yours does, opt-in.
|
||||||
|
if g:pencil_terminal_italics == 0 && has_key(a:style, "cterm") && a:style["cterm"] == "italic"
|
||||||
|
unlet a:style.cterm
|
||||||
|
endif
|
||||||
|
execute "highlight" a:group
|
||||||
|
\ "guifg=" (has_key(a:style, "fg") ? a:style.fg.gui : "NONE")
|
||||||
|
\ "guibg=" (has_key(a:style, "bg") ? a:style.bg.gui : "NONE")
|
||||||
|
\ "guisp=" (has_key(a:style, "sp") ? a:style.sp.gui : "NONE")
|
||||||
|
\ "gui=" (has_key(a:style, "gui") ? a:style.gui : "NONE")
|
||||||
|
\ "ctermfg=" (has_key(a:style, "fg") ? a:style.fg.cterm : "NONE")
|
||||||
|
\ "ctermbg=" (has_key(a:style, "bg") ? a:style.bg.cterm : "NONE")
|
||||||
|
\ "cterm=" (has_key(a:style, "cterm") ? a:style.cterm : "NONE")
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" common groups ================================================================
|
||||||
|
" (see `:h w18`)
|
||||||
|
|
||||||
|
call s:h("Normal", {"bg": s:bg, "fg": s:norm})
|
||||||
|
call s:h("Cursor", {"bg": s:blue, "fg": s:norm })
|
||||||
|
call s:h("Comment", {"fg": s:medium_gray, "gui": "italic", "cterm": "italic"})
|
||||||
|
|
||||||
|
call s:h("Constant", {"fg": s:cyan})
|
||||||
|
hi! link String Constant
|
||||||
|
hi! link Character Constant
|
||||||
|
hi! link Number Constant
|
||||||
|
hi! link Boolean Constant
|
||||||
|
hi! link Float Constant
|
||||||
|
|
||||||
|
call s:h("Identifier", {"fg": s:dark_blue})
|
||||||
|
hi! link Function Identifier
|
||||||
|
|
||||||
|
call s:h("Statement", {"fg": s:green})
|
||||||
|
hi! link Conditonal Statement
|
||||||
|
hi! link Repeat Statement
|
||||||
|
hi! link Label Statement
|
||||||
|
hi! link Operator Statement
|
||||||
|
hi! link Keyword Statement
|
||||||
|
hi! link Exception Statement
|
||||||
|
|
||||||
|
call s:h("PreProc", {"fg": s:red})
|
||||||
|
hi! link Include PreProc
|
||||||
|
hi! link Define PreProc
|
||||||
|
hi! link Macro PreProc
|
||||||
|
hi! link PreCondit PreProc
|
||||||
|
|
||||||
|
call s:h("Type", {"fg": s:purple})
|
||||||
|
hi! link StorageClass Type
|
||||||
|
hi! link Structure Type
|
||||||
|
hi! link Typedef Type
|
||||||
|
|
||||||
|
call s:h("Special", {"fg": s:pink})
|
||||||
|
hi! link SpecialChar Special
|
||||||
|
hi! link Tag Special
|
||||||
|
hi! link Delimiter Special
|
||||||
|
hi! link SpecialComment Special
|
||||||
|
hi! link Debug Special
|
||||||
|
|
||||||
|
call s:h("Underlined", {"fg": s:norm , "gui": "underline", "cterm": "underline"})
|
||||||
|
call s:h("Ignore", {"fg": s:bg })
|
||||||
|
call s:h("Error", {"fg": s:actual_white, "bg": s:red , "gui": "bold" , "cterm": "bold" })
|
||||||
|
call s:h("Todo", {"fg": s:actual_white, "bg": s:pink, "gui": "bold" , "cterm": "bold" })
|
||||||
|
|
||||||
|
" ui chrome ====================================================================
|
||||||
|
" ordered according to `:help hitest.vim`
|
||||||
|
|
||||||
|
call s:h("SpecialKey", {"fg": s:light_green})
|
||||||
|
call s:h("NonText", {"fg": s:bg_subtle})
|
||||||
|
call s:h("Directory", {"fg": s:dark_blue})
|
||||||
|
call s:h("ErrorMsg", {"fg": s:pink})
|
||||||
|
call s:h("IncSearch", {"bg": s:yellow, "fg": s:light_black})
|
||||||
|
call s:h("Search", {"bg": s:bg_subtle})
|
||||||
|
call s:h("MoreMsg", {"fg": s:medium_gray, "gui": "bold", "cterm": "bold"})
|
||||||
|
hi! link ModeMsg MoreMsg
|
||||||
|
call s:h("LineNr", {"fg": s:bg_subtle})
|
||||||
|
call s:h("CursorLineNr", {"fg": s:blue, "bg": s:bg_very_subtle})
|
||||||
|
call s:h("Question", {"fg": s:red})
|
||||||
|
call s:h("StatusLine", {"bg": s:bg_very_subtle})
|
||||||
|
call s:h("Conceal", {"fg": s:norm})
|
||||||
|
call s:h("StatusLineNC", {"bg": s:bg_very_subtle, "fg": s:medium_gray})
|
||||||
|
call s:h("VertSplit", {"bg": s:bg_very_subtle, "fg": s:bg_very_subtle})
|
||||||
|
call s:h("Title", {"fg": s:dark_blue})
|
||||||
|
call s:h("Visual", {"bg": s:visual})
|
||||||
|
call s:h("VisualNOS", {"bg": s:bg_subtle})
|
||||||
|
call s:h("WarningMsg", {"fg": s:red})
|
||||||
|
call s:h("WildMenu", {"fg": s:bg, "bg": s:norm})
|
||||||
|
call s:h("Folded", {"fg": s:medium_gray})
|
||||||
|
call s:h("FoldColumn", {"fg": s:bg_subtle})
|
||||||
|
call s:h("DiffAdd", {"bg": s:bg_subtle, "fg": s:green})
|
||||||
|
call s:h("DiffAdded", {"bg": s:bg_subtle, "fg": s:green})
|
||||||
|
call s:h("DiffDelete", {"bg": s:bg_subtle, "fg": s:red})
|
||||||
|
call s:h("DiffRemoved", {"bg": s:bg_subtle, "fg": s:red})
|
||||||
|
call s:h("DiffChange", {"bg": s:bg_subtle, "fg": s:dark_yellow})
|
||||||
|
call s:h("DiffChanged", {"bg": s:bg_subtle, "fg": s:dark_yellow})
|
||||||
|
call s:h("DiffText", {"bg": s:bg_subtle, "fg": s:dark_blue})
|
||||||
|
call s:h("SignColumn", {"fg": s:light_green})
|
||||||
|
|
||||||
|
call s:h("SpellBad", {"gui": s:sp_un, "sp": s:red, "cterm": s:sp_un, "fg": s:red})
|
||||||
|
call s:h("SpellCap", {"gui": s:sp_un, "sp": s:light_green, "cterm": s:sp_un, "fg": s:light_green})
|
||||||
|
call s:h("SpellRare", {"gui": s:sp_un, "sp": s:pink, "cterm": s:sp_un, "fg": s:pink})
|
||||||
|
call s:h("SpellLocal", {"gui": s:sp_un, "sp": s:dark_green, "cterm": s:sp_un, "fg": s:dark_green})
|
||||||
|
|
||||||
|
call s:h("Pmenu", {"fg": s:norm, "bg": s:bg_subtle})
|
||||||
|
call s:h("PmenuSel", {"fg": s:norm, "bg": s:blue})
|
||||||
|
call s:h("PmenuSbar", {"fg": s:norm, "bg": s:bg_subtle})
|
||||||
|
call s:h("PmenuThumb", {"fg": s:norm, "bg": s:bg_subtle})
|
||||||
|
call s:h("TabLine", {"fg": s:norm, "bg": s:bg_very_subtle})
|
||||||
|
call s:h("TabLineSel", {"fg": s:blue, "bg": s:bg_subtle, "gui": "bold", "cterm": "bold"})
|
||||||
|
call s:h("TabLineFill", {"fg": s:norm, "bg": s:bg_very_subtle})
|
||||||
|
call s:h("CursorColumn", {"bg": s:bg_very_subtle})
|
||||||
|
call s:h("CursorLine", {"bg": s:bg_very_subtle})
|
||||||
|
call s:h("ColorColumn", {"bg": s:bg_subtle})
|
||||||
|
|
||||||
|
" remainder of syntax highlighting
|
||||||
|
call s:h("MatchParen", {"bg": s:bg_subtle, "fg": s:norm})
|
||||||
|
call s:h("qfLineNr", {"fg": s:medium_gray})
|
||||||
|
|
||||||
|
" hi helpHyperTextJump guifg=#5FAFD7 ctermfg=74
|
||||||
|
|
||||||
|
" HTML syntax
|
||||||
|
hi! link htmlTag Special
|
||||||
|
hi! link htmlEndTag htmlTag
|
||||||
|
|
||||||
|
hi! link htmlTagName KeyWord
|
||||||
|
" html5 tags show up as htmlTagN
|
||||||
|
hi! link htmlTagN Keyword
|
||||||
|
|
||||||
|
" HTML content
|
||||||
|
call s:h("htmlH1", {"fg": s:head_a, "gui": "bold,italic", "cterm": "bold" })
|
||||||
|
call s:h("htmlH2", {"fg": s:head_a, "gui": "bold" , "cterm": "bold" })
|
||||||
|
call s:h("htmlH3", {"fg": s:head_b, "gui": "italic" , "cterm": "italic" })
|
||||||
|
call s:h("htmlH4", {"fg": s:head_b, "gui": "italic" , "cterm": "italic" })
|
||||||
|
call s:h("htmlH5", {"fg": s:head_c })
|
||||||
|
call s:h("htmlH6", {"fg": s:head_c })
|
||||||
|
call s:h("htmlLink", {"fg": s:blue , "gui": "underline" , "cterm": "underline"})
|
||||||
|
call s:h("htmlItalic", { "gui": "italic" , "cterm": "italic" })
|
||||||
|
call s:h("htmlBold", { "gui": "bold" , "cterm": "bold" })
|
||||||
|
call s:h("htmlBoldItalic",{ "gui": "bold,italic", "cterm": "bold" })
|
||||||
|
" hi htmlString guifg=#87875f guibg=NONE gui=NONE ctermfg=101 ctermbg=NONE cterm=NONE
|
||||||
|
|
||||||
|
" tpope/vim-markdown
|
||||||
|
call s:h("markdownBlockquote", {"fg": s:norm})
|
||||||
|
call s:h("markdownBold", {"fg": s:norm , "gui": "bold" , "cterm": "bold" })
|
||||||
|
call s:h("markdownBoldItalic", {"fg": s:norm , "gui": "bold,italic", "cterm": "bold" })
|
||||||
|
call s:h("markdownEscape", {"fg": s:norm})
|
||||||
|
call s:h("markdownH1", {"fg": s:head_a, "gui": "bold,italic", "cterm": "bold" })
|
||||||
|
call s:h("markdownH2", {"fg": s:head_a, "gui": "bold" , "cterm": "bold" })
|
||||||
|
call s:h("markdownH3", {"fg": s:head_a, "gui": "italic" , "cterm": "italic"})
|
||||||
|
call s:h("markdownH4", {"fg": s:head_a, "gui": "italic" , "cterm": "italic"})
|
||||||
|
call s:h("markdownH5", {"fg": s:head_a})
|
||||||
|
call s:h("markdownH6", {"fg": s:head_a})
|
||||||
|
call s:h("markdownHeadingDelimiter", {"fg": s:norm})
|
||||||
|
call s:h("markdownHeadingRule", {"fg": s:norm})
|
||||||
|
call s:h("markdownId", {"fg": s:medium_gray})
|
||||||
|
call s:h("markdownIdDeclaration", {"fg": s:norm_subtle})
|
||||||
|
call s:h("markdownItalic", {"fg": s:norm , "gui": "italic" , "cterm": "italic"})
|
||||||
|
call s:h("markdownLinkDelimiter", {"fg": s:medium_gray})
|
||||||
|
call s:h("markdownLinkText", {"fg": s:norm})
|
||||||
|
call s:h("markdownLinkTextDelimiter", {"fg": s:medium_gray})
|
||||||
|
call s:h("markdownListMarker", {"fg": s:norm})
|
||||||
|
call s:h("markdownOrderedListMarker", {"fg": s:norm})
|
||||||
|
call s:h("markdownRule", {"fg": s:norm})
|
||||||
|
call s:h("markdownUrl", {"fg": s:medium_gray, "gui": "underline", "cterm": "underline"})
|
||||||
|
call s:h("markdownUrlDelimiter", {"fg": s:medium_gray})
|
||||||
|
call s:h("markdownUrlTitle", {"fg": s:norm})
|
||||||
|
call s:h("markdownUrlTitleDelimiter", {"fg": s:medium_gray})
|
||||||
|
call s:h("markdownCode", {"fg": s:norm, "bg": s:code_bg})
|
||||||
|
call s:h("markdownCodeDelimiter", {"fg": s:norm, "bg": s:code_bg})
|
||||||
|
|
||||||
|
" plasticboy/vim-markdown
|
||||||
|
call s:h("mkdBlockquote", {"fg": s:norm})
|
||||||
|
call s:h("mkdDelimiter", {"fg": s:medium_gray})
|
||||||
|
call s:h("mkdID", {"fg": s:medium_gray})
|
||||||
|
call s:h("mkdLink", {"fg": s:norm})
|
||||||
|
call s:h("mkdLinkDef", {"fg": s:medium_gray})
|
||||||
|
call s:h("mkdListItem", {"fg": s:norm})
|
||||||
|
call s:h("mkdNonListItemBlock", {"fg": s:norm}) " bug in syntax?
|
||||||
|
call s:h("mkdRule", {"fg": s:norm})
|
||||||
|
call s:h("mkdURL", {"fg": s:medium_gray, "gui": "underline", "cterm": "underline"})
|
||||||
|
call s:h("mkdCode", {"fg": s:norm, "bg": s:code_bg})
|
||||||
|
|
||||||
|
" gabrielelana/vim-markdown
|
||||||
|
call s:h("markdownBlockquoteDelimiter", {"fg": s:norm})
|
||||||
|
call s:h("markdownInlineDelimiter", {"fg": s:norm})
|
||||||
|
call s:h("markdownItemDelimiter", {"fg": s:norm})
|
||||||
|
call s:h("markdownLinkReference", {"fg": s:medium_gray})
|
||||||
|
call s:h("markdownLinkText", {"fg": s:norm})
|
||||||
|
call s:h("markdownLinkTextContainer", {"fg": s:medium_gray})
|
||||||
|
call s:h("markdownLinkUrl", {"fg": s:medium_gray, "gui": "underline", "cterm": "underline"})
|
||||||
|
call s:h("markdownLinkUrlContainer", {"fg": s:medium_gray})
|
||||||
|
call s:h("markdownFencedCodeBlock", {"fg": s:norm, "bg": s:code_bg})
|
||||||
|
call s:h("markdownInlineCode", {"fg": s:norm, "bg": s:code_bg})
|
||||||
|
|
||||||
|
" mattly/vim-markdown-enhancements
|
||||||
|
call s:h("mmdFootnoteDelimiter", {"fg": s:medium_gray})
|
||||||
|
call s:h("mmdFootnoteMarker", {"fg": s:norm})
|
||||||
|
call s:h("mmdTableAlign", {"fg": s:norm})
|
||||||
|
call s:h("mmdTableDelimiter", {"fg": s:norm})
|
||||||
|
call s:h("mmdTableHeadDelimiter", {"fg": s:norm})
|
||||||
|
call s:h("mmdTableHeader", {"fg": s:norm})
|
||||||
|
call s:h("mmdTableCaptionDelimiter", {"fg": s:norm})
|
||||||
|
call s:h("mmdTableCaption", {"fg": s:norm})
|
||||||
|
|
||||||
|
" Textile content
|
||||||
|
" https://github.com/timcharper/textile.vim/blob/master/syntax/textile.vim
|
||||||
|
"call s:h("txtBold", {"fg": s:norm , "gui": "bold" , "cterm": "bold" })
|
||||||
|
"call s:h("txtEmphasis", {"fg": s:norm , "gui": "italic" , "cterm": "italic"})
|
||||||
|
|
||||||
|
" XML content
|
||||||
|
hi! link xmlTag htmlTag
|
||||||
|
hi! link xmlEndTag xmlTag
|
||||||
|
hi! link xmlTagName htmlTagName
|
||||||
|
|
||||||
|
" Signify, git-gutter
|
||||||
|
if g:pencil_gutter_color == 1
|
||||||
|
hi link SignifySignAdd DiffAdd
|
||||||
|
hi link SignifySignDelete DiffDelete
|
||||||
|
hi link SignifySignChange DiffChange
|
||||||
|
hi link GitGutterAdd DiffAdd
|
||||||
|
hi link GitGutterDelete DiffDelete
|
||||||
|
hi link GitGutterChange DiffChange
|
||||||
|
hi link GitGutterChangeDelete DiffChange
|
||||||
|
else
|
||||||
|
hi link SignifySignAdd LineNr
|
||||||
|
hi link SignifySignDelete LineNr
|
||||||
|
hi link SignifySignChange LineNr
|
||||||
|
hi link GitGutterAdd LineNr
|
||||||
|
hi link GitGutterDelete LineNr
|
||||||
|
hi link GitGutterChange LineNr
|
||||||
|
hi link GitGutterChangeDelete LineNr
|
||||||
|
endif
|
||||||
0
config/vim/extra/.gitkeep
Normal file
0
config/vim/extra/.gitkeep
Normal file
64
config/vim/ftplugin/go.vim
Normal file
64
config/vim/ftplugin/go.vim
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
" go
|
||||||
|
" vim-go
|
||||||
|
" run :GoBuild or :GoTestCompile based on the go file
|
||||||
|
function! s:build_go_files()
|
||||||
|
let l:file = expand('%')
|
||||||
|
if l:file =~# '^\f\+_test\.go$'
|
||||||
|
call go#test#Test(0, 1)
|
||||||
|
elseif l:file =~# '^\f\+\.go$'
|
||||||
|
call go#cmd#Build(0)
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let g:go_list_type = "quickfix"
|
||||||
|
let g:go_fmt_command = "goimports"
|
||||||
|
let g:go_fmt_fail_silently = 1
|
||||||
|
|
||||||
|
let g:go_highlight_types = 1
|
||||||
|
let g:go_highlight_fields = 1
|
||||||
|
let g:go_highlight_functions = 1
|
||||||
|
let g:go_highlight_methods = 1
|
||||||
|
let g:go_highlight_operators = 1
|
||||||
|
let g:go_highlight_build_constraints = 1
|
||||||
|
let g:go_highlight_structs = 1
|
||||||
|
let g:go_highlight_generate_tags = 1
|
||||||
|
let g:go_highlight_space_tab_error = 0
|
||||||
|
let g:go_highlight_array_whitespace_error = 0
|
||||||
|
let g:go_highlight_trailing_whitespace_error = 0
|
||||||
|
let g:go_highlight_extra_types = 1
|
||||||
|
|
||||||
|
autocmd BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4
|
||||||
|
|
||||||
|
augroup completion_preview_close
|
||||||
|
autocmd!
|
||||||
|
if v:version > 703 || v:version == 703 && has('patch598')
|
||||||
|
autocmd CompleteDone * if !&previewwindow && &completeopt =~ 'preview' | silent! pclose | endif
|
||||||
|
endif
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
" for go files
|
||||||
|
augroup go
|
||||||
|
au!
|
||||||
|
au Filetype go command! -bang A call go#alternate#Switch(<bang>0, 'edit')
|
||||||
|
au Filetype go command! -bang AV call go#alternate#Switch(<bang>0, 'vsplit')
|
||||||
|
au Filetype go command! -bang AS call go#alternate#Switch(<bang>0, 'split')
|
||||||
|
au Filetype go command! -bang AT call go#alternate#Switch(<bang>0, 'tabe')
|
||||||
|
|
||||||
|
au FileType go nmap <Leader>dd <Plug>(go-def-vertical)
|
||||||
|
au FileType go nmap <Leader>dv <Plug>(go-doc-vertical)
|
||||||
|
au FileType go nmap <Leader>db <Plug>(go-doc-browser)
|
||||||
|
|
||||||
|
au FileType go nmap <leader>r <Plug>(go-run)
|
||||||
|
au FileType go nmap <leader>t <Plug>(go-test)
|
||||||
|
au FileType go nmap <Leader>gt <Plug>(go-coverage-toggle)
|
||||||
|
au FileType go nmap <Leader>i <Plug>(go-info)
|
||||||
|
au FileType go nmap <silent> <Leader>l <Plug>(go-metalinter)
|
||||||
|
au FileType go nmap <C-g> :GoDecls<cr>
|
||||||
|
au FileType go nmap <leader>dr :GoDeclsDir<cr>
|
||||||
|
au FileType go imap <C-g> <esc>:<C-u>GoDecls<cr>
|
||||||
|
au FileType go imap <leader>dr <esc>:<C-u>GoDeclsDir<cr>
|
||||||
|
au FileType go nmap <leader>rb :<C-u>call <SID>build_go_files()<CR>
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
"" ale
|
||||||
|
:call extend(g:ale_linters, {"go": [ 'golint', 'go vet' ]})
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user