Advertisement
Guest User

Untitled

a guest
Jun 24th, 2025
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 2.06 KB | None | 0 0
  1. diff --git a/contrib/zsh_compl/_rgbasm b/contrib/zsh_compl/_rgbasm
  2. index 2998be21..238c9baf 100644
  3. --- a/contrib/zsh_compl/_rgbasm
  4. +++ b/contrib/zsh_compl/_rgbasm
  5. @@ -1,7 +1,7 @@
  6.  #compdef rgbasm
  7.  
  8.  _rgbasm_warnings() {
  9. -   local warnings=(
  10. +   local -a base_warnings=(
  11.         'error:Turn all warnings into errors'
  12.  
  13.         'all:Enable most warning messages'
  14. @@ -30,8 +30,55 @@ _rgbasm_warnings() {
  15.         'unterminated-load:Warn on LOAD without ENDL'
  16.         'user:Warn when executing the WARN built-in'
  17.     )
  18. -   # TODO: handle `no-` and `error=` somehow?
  19. -   # TODO: handle `=0|1|2` levels for `numeric-string`, `purge`, `truncation`, and `unmapped-char`?
  20. +
  21. +   # Warnings that support levels
  22. +   local -a level_warnings=(
  23. +       'numeric-string'
  24. +       'purge'
  25. +       'truncation'
  26. +       'unmapped-char'
  27. +   )
  28. +
  29. +   local -a warnings=()
  30. +   local warning
  31. +
  32. +   # Add base warnings
  33. +   warnings=($base_warnings)
  34. +
  35. +   # Add no- prefix for all warnings except error, all, extra, everything
  36. +   for warning in ${base_warnings}; do
  37. +       local name=${warning%%:*}
  38. +       local desc=${warning#*:}
  39. +       case $name in
  40. +           error|all|extra|everything) continue ;;
  41. +           *) warnings+=("no-$name:Disable warning: $desc") ;;
  42. +       esac
  43. +   done
  44. +
  45. +   # Add error= prefix for all warnings except error, all, extra, everything
  46. +   for warning in ${base_warnings}; do
  47. +       local name=${warning%%:*}
  48. +       local desc=${warning#*:}
  49. +       case $name in
  50. +           error|all|extra|everything) continue ;;
  51. +           *) warnings+=("error=$name:Treat as error: $desc") ;;
  52. +       esac
  53. +   done
  54. +
  55. +   # Add =0|1|2 levels for specific warnings
  56. +   for warning in $level_warnings; do
  57. +       local base_desc
  58. +       for w in $base_warnings; do
  59. +           if [[ ${w%%:*} == $warning ]]; then
  60. +               base_desc=${w#*:}
  61. +               break
  62. +           fi
  63. +       done
  64. +       warnings+=("$warning=0:Disable: $base_desc")
  65. +       warnings+=("$warning=1:Enable: $base_desc")
  66. +       warnings+=("$warning=2:Extra strict: $base_desc")
  67. +   done
  68. +
  69.     _describe warning warnings
  70.  }
  71.  
  72. @@ -64,4 +111,4 @@ local args=(
  73.  
  74.     ":assembly sources:_files -g '*.asm'"
  75.  )
  76. -_arguments -s -S : $args
  77. +_arguments -s -S : $args
  78. \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement