From ce4c4572f0c5ddde7d2a05f06f44f57b6373b665 Mon Sep 17 00:00:00 2001
From: Gregory Leeman <gl6@sanger.ac.uk>
Date: Mon, 22 Jul 2024 15:58:51 +0100
Subject: [PATCH] lazygit

---
 after/ftplugin/cpp.vim    | 138 +++++++++++++++++++++-----------------
 after/ftplugin/python.vim |  11 ++-
 vimrc                     |   1 +
 3 files changed, 85 insertions(+), 65 deletions(-)

diff --git a/after/ftplugin/cpp.vim b/after/ftplugin/cpp.vim
index c963dd6..8133b06 100644
--- a/after/ftplugin/cpp.vim
+++ b/after/ftplugin/cpp.vim
@@ -1,83 +1,95 @@
-let b:ale_fixers = ['clangtidy', 'clang-format', 'remove_trailing_lines', 'trim_whitespace']
-let b:ale_linters = ['cc', 'ccls', 'clangcheck', 'clangd', 'clangtidy', 'clazy', 'cppcheck', 'cpplint', 'cquery', 'cspell', 'flawfinder']
+let b:ale_fixers = {
+			\ 'cpp' : [
+				\ 'clangtidy',
+				\ 'clang-format',
+				\ 'remove_trailing_lines',
+				\ 'trim_whitespace'
+				\ ]
+			\ }
+
+let b:ale_linters = {
+			\ 'cpp' : [
+				\ 'cc',
+				\ 'ccls',
+				\ 'clangcheck',
+				\ 'clangd',
+				\ 'clangtidy',
+				\ 'clazy',
+				\ 'cppcheck',
+				\ 'cpplint',
+				\ 'cquery',
+				\ 'cspell',
+				\ 'flawfinder'
+				\ ]
+			\ }
 
-" Function to find the project root
 function! FindProjectRoot()
-  let l:current_dir = expand('%:p:h')
-  while l:current_dir != "/"
-    if filereadable(l:current_dir . "/main.cpp")
-      return l:current_dir
-    endif
-    let l:current_dir = fnamemodify(l:current_dir, ':h')
-  endwhile
-  return ""
+	let l:current_dir = expand('%:p:h')
+	while l:current_dir != "/"
+		if filereadable(l:current_dir . "/main.cpp")
+			return l:current_dir
+		endif
+		let l:current_dir = fnamemodify(l:current_dir, ':h')
+	endwhile
+	return ""
 endfunction
 
-" Function to compile the project
 function! CompileProject(debug)
-  let l:project_root = FindProjectRoot()
-  if l:project_root == ""
-    echo "main.cpp not found in any parent directory."
-    return
-  endif
-  let l:main_file = l:project_root . "/main.cpp"
+	let l:project_root = FindProjectRoot()
+	if l:project_root == ""
+		echo "main.cpp not found in any parent directory."
+		return
+	endif
+	let l:main_file = l:project_root . "/main.cpp"
 
-  " Extract the project directory name
-  let l:project_name = fnamemodify(l:project_root, ':t')
-  let l:output_file = l:project_root . "/" . l:project_name
+	let l:project_name = fnamemodify(l:project_root, ':t')
+	let l:output_file = l:project_root . "/" . l:project_name
 
-  let l:warning_flags = "-Wall -Weffc++ -Wextra -Wconversion -Wsign-conversion"
-  let l:disable_extension_flags = "-pedantic-errors"
-  let l:debug_flags = a:debug ? "-ggdb" : "-O2 -DNDEBUG"
-  let l:standard_flag = "-std=c++20"
+	let l:warning_flags = "-Wall -Weffc++ -Wextra -Wconversion -Wsign-conversion"
+	let l:disable_extension_flags = "-pedantic-errors"
+	let l:debug_flags = a:debug ? "-ggdb" : "-O2 -DNDEBUG"
+	let l:standard_flag = "-std=c++20"
 
-  let l:compile_cmd = 
-			  \ "g++" . " " .
-			  \ l:standard_flag . " " .
-			  \ l:warning_flags . " " . 
-			  \ l:disable_extension_flags . " " .
-			  \ l:debug_flags . " " . 
-			  \ l:main_file . " " .
-			  \ "-o" . " " . l:output_file
+	let l:compile_cmd = 
+				\ "g++" . " " .
+				\ l:standard_flag . " " .
+				\ l:warning_flags . " " . 
+				\ l:disable_extension_flags . " " .
+				\ l:debug_flags . " " . 
+				\ l:main_file . " " .
+				\ "-o" . " " . l:output_file
 
-  " Run the compile command and capture the output
-  let l:output = system(l:compile_cmd)
+	" Run the compile command and capture the output
+	let l:output = system(l:compile_cmd)
 
-  " Check if the compilation was successful
-  if v:shell_error
-    echo "Compilation failed:"
-    echo l:output
-  else
-    echo "Compilation successful. Output: " . l:output_file
-  endif
+	" Check if the compilation was successful
+	if v:shell_error
+		echo "Compilation failed:"
+		echo l:output
+	else
+		echo "Compilation successful. Output: " . l:output_file
+	endif
 endfunction
 
-" Function to run the compiled project
 function! RunProject()
-  let l:project_root = FindProjectRoot()
-  if l:project_root == ""
-    echo "Project root not found."
-    return
-  endif
+	let l:project_root = FindProjectRoot()
+	if l:project_root == ""
+		echo "Project root not found."
+		return
+	endif
 
-  " Extract the project directory name
-  let l:project_name = fnamemodify(l:project_root, ':t')
-  let l:output_file = l:project_root . "/" . l:project_name
+	let l:project_name = fnamemodify(l:project_root, ':t')
+	let l:output_file = l:project_root . "/" . l:project_name
 
-  " Check if the output file exists
-  if !filereadable(l:output_file)
-    echo "Output file not found. Please compile the project first."
-    return
-  endif
+	if !filereadable(l:output_file)
+		echo "Output file not found. Please compile the project first."
+		return
+	endif
 
-  " Run the compiled output file
-  let l:run_cmd = "!" . l:output_file
-  execute l:run_cmd
+	let l:run_cmd = "!" . l:output_file
+	execute l:run_cmd
 endfunction
 
-" Create the Compile command
 command! -nargs=0 Compile call CompileProject(1)
 command! -nargs=0 CompileRelease call CompileProject(0)
-
-" Create the Run command
-command! Run call RunProject()
+command! -nargs=0 Run call RunProject()
diff --git a/after/ftplugin/python.vim b/after/ftplugin/python.vim
index 4b56a40..4c63f32 100644
--- a/after/ftplugin/python.vim
+++ b/after/ftplugin/python.vim
@@ -1,2 +1,9 @@
-set foldmethod=expr
-set foldexpr=nvim_treesitter#foldexpr()
+let g:ale_python_flake8_options = '--ignore=E501,E402'
+
+let g:ale_linters = {
+			\ 'python': ['flake8'],
+			\ }
+
+let g:ale_fixers = {
+			\ 'python': ['black']
+			\ }
diff --git a/vimrc b/vimrc
index bef2fc0..0139952 100644
--- a/vimrc
+++ b/vimrc
@@ -30,6 +30,7 @@ Plug 'ncm2/ncm2-bufword'
 Plug 'ncm2/ncm2-path'
 Plug 'ncm2/ncm2-jedi'
 Plug 'dense-analysis/ale'
+Plug 'dhruvasagar/vim-table-mode'
 
 call plug#end()