Closed16

dotfileの更新

YTYT

本日の目標

  • nvimの設定をメモに特化させる
  • weztermの設定、インストール
  • インストーラーの整備
YTYT

nvimの設定をメモに特化させる

  • formatterはほしい。
    • markdown
    • lua
  • lsp系はmarkdownとluaがほしい。
    • masonで初回インストールする設定をする
  • それ以外の言語ではformatterとlspを使用しないようにする。
YTYT

lua関係のものを全てまとめてフォーマットしたい

styluaを使う
https://github.com/JohnnyMorganz/StyLua

$ stylua .config/nvim

CIでやりたい場合はどのようにやるのがよいか?

YTYT

CIでやるときの案

  1. コミット時に実行させる
  2. CIでフォーマット実行してコミットさせる
  3. CIでフォーマットが失敗してればエラー出す

現状、PRではなく直コミットしているので、3はやりたくない。
複数端末で実行したとき、1だと環境の違いで失敗しそう。
消去法で2でやる。

YTYT

githubでCIする

ドキュメント
https://docs.github.com/ja/actions/get-started/continuous-integration

基礎概念
チュートリアル

  • styluaで.config/nvim配下を全てフォーマットさせたい。
YTYT

CIの作り方

  1. .github/workflowsディレクトリ作る
  2. action.ymlを作成する
YTYT
    steps:
      - uses: actions/checkout@v5

これを実行しないと、仮想環境にコードが入らない

YTYT

styluaのCIを突っ込んだ。
現状checkだけやってる

name: CI

on:
  push:
    branches:
      - main

jobs:
  format_lua:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v5
      - uses: JohnnyMorganz/stylua-action@v4
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          version: latest
          args: --check .config/nvim
YTYT

フォーマットしてコミットまで

name: CI

on:
  push:
    branches:
      - main

jobs:
  format_lua:
    runs-on: ubuntu-24.04
    permissions:
      contents: write

    steps:
      - uses: actions/checkout@v5
        with:
          persist-credentials: true

      - uses: JohnnyMorganz/stylua-action@v4
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          version: latest
          args: .config/nvim

      - uses: stefanzweifel/git-auto-commit-action@v6
        with:
          commit_message: 'style: format files by CI'
YTYT

wezterm

  • 起動時のウィンドウ最大化
  • 新規タブを開いたとき、ホームディレクトリで開くように
YTYT

最大化

-- 起動時に最大化
wezterm.on('gui-startup', function()
    local _, _, window = wezterm.mux.spawn_window({})
    window:gui_window():maximize()
end)

YTYT

依存関係インストールスクリプト

  • pyenv
  • uv
YTYT
# !/usr/bin/env bash

# 依存関係インストール用スクリプト

# uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# pyenv
curl -fsSL https://pyenv.run | sh

# rg
sudo apt-get install ripgrep

# lazygit
sudo apt install lazygit
このスクラップは2日前にクローズされました