aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/ftplugin/racket.vim9
-rw-r--r--runtime/indent/racket.vim12
-rw-r--r--runtime/syntax/racket.vim4
3 files changed, 18 insertions, 7 deletions
diff --git a/runtime/ftplugin/racket.vim b/runtime/ftplugin/racket.vim
index 7bfd87ddc3..52768d67f5 100644
--- a/runtime/ftplugin/racket.vim
+++ b/runtime/ftplugin/racket.vim
@@ -3,7 +3,7 @@
" Maintainer: D. Ben Knoble <ben.knoble+github@gmail.com>
" Previous Maintainer: Will Langstroth <will@langstroth.com>
" URL: https://github.com/benknoble/vim-racket
-" Last Change: 2024 May 28
+" Last Change: 2024 Jun 01
if exists("b:did_ftplugin")
finish
@@ -16,19 +16,20 @@ set cpo&vim
" quick hack to allow adding values
setlocal iskeyword=@,!,#-',*-:,<-Z,a-z,~,_,94
+setlocal shiftwidth=2 softtabstop=2
+
" Enable auto begin new comment line when continuing from an old comment line
setlocal comments=:;;;;,:;;;,:;;,:;
setlocal formatoptions+=r
-"setlocal commentstring=;;\ %s
-setlocal commentstring=#\|\ %s\ \|#
+setlocal commentstring=;;\ %s
setlocal formatprg=raco\ fmt
" Undo our settings when the filetype changes away from Racket
" (this should be amended if settings/mappings are added above!)
let b:undo_ftplugin =
- \ "setlocal iskeyword< lispwords< lisp< comments< formatoptions< formatprg<"
+ \ "setlocal iskeyword< shiftwidth< softtabstop< comments< formatoptions< formatprg<"
\. " | setlocal commentstring<"
if !exists("no_plugin_maps") && !exists("no_racket_maps")
diff --git a/runtime/indent/racket.vim b/runtime/indent/racket.vim
index d301cd64f9..2bab3f3bed 100644
--- a/runtime/indent/racket.vim
+++ b/runtime/indent/racket.vim
@@ -3,7 +3,7 @@
" Maintainer: D. Ben Knoble <ben.knoble+github@gmail.com>
" Previous Maintainer: Will Langstroth <will@langstroth.com>
" URL: https://github.com/benknoble/vim-racket
-" Last Change: 2024 Jan 31
+" Last Change: 2024 Nov 12
if exists("b:did_indent")
finish
@@ -21,6 +21,7 @@ setlocal lispwords+=λ
setlocal lispwords+=with-handlers
setlocal lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case,syntax-parse
setlocal lispwords+=define-for-syntax,define-syntax-parser,define-syntax-parse-rule,define-syntax-class,define-splicing-syntax-class
+setlocal lispwords+=syntax/loc,quasisyntax/loc
setlocal lispwords+=define-syntax-parameter,syntax-parameterize
setlocal lispwords+=define-signature,unit,unit/sig,compund-unit/sig,define-values/invoke-unit/sig
setlocal lispwords+=define-opt/c,define-syntax-rule
@@ -30,6 +31,11 @@ setlocal lispwords+=with-input-from-file,with-output-to-file
setlocal lispwords+=begin,begin0
setlocal lispwords+=place
setlocal lispwords+=cond
+" Racket style indents if like a function application:
+" (if test
+" then
+" else)
+setlocal lispwords-=if
" Racket OOP
" TODO missing a lot of define-like forms here (e.g., define/augment, etc.)
@@ -50,6 +56,7 @@ setlocal lispwords+=for/set,for*/set
setlocal lispwords+=for/first,for*/first
setlocal lispwords+=for/last,for*/last
setlocal lispwords+=for/stream,for*/stream
+setlocal lispwords+=for/lists,for*/lists
setlocal lispwords+=match,match*,match/values,define/match,match-lambda,match-lambda*,match-lambda**
setlocal lispwords+=match-let,match-let*,match-let-values,match-let*-values
@@ -66,4 +73,7 @@ setlocal lispwords+=if-view,case-view,cond-view,list-view,dyn-view
setlocal lispwords+=case/dep
setlocal lispwords+=define/obs
+" rackunit
+setlocal lispwords+=define-simple-check,define-binary-check,define-check,with-check-info
+
let b:undo_indent = "setlocal lisp< ai< si< lw<" .. (has('vim9script') ? ' indentexpr< lispoptions<' : '')
diff --git a/runtime/syntax/racket.vim b/runtime/syntax/racket.vim
index fcd64a7c9b..7dcca6082c 100644
--- a/runtime/syntax/racket.vim
+++ b/runtime/syntax/racket.vim
@@ -4,7 +4,7 @@
" Previous Maintainer: Will Langstroth <will@langstroth.com>
" URL: https://github.com/benknoble/vim-racket
" Description: Contains all of the keywords in #lang racket
-" Last Change: 2023 Sep 22
+" Last Change: 2024 Apr 14
" Initializing:
if exists("b:current_syntax")
@@ -30,7 +30,7 @@ endif
" http://docs.racket-lang.org/reference/index.html
"
syntax keyword racketSyntax module module* module+ require provide quote
-syntax keyword racketSyntax #%datum #%expression #%top #%variable-reference #%app
+syntax keyword racketSyntax #%module-begin #%datum #%expression #%top #%variable-reference #%app
syntax keyword racketSyntax lambda case-lambda let let* letrec
syntax keyword racketSyntax let-values let*-values let-syntax letrec-syntax
syntax keyword racketSyntax let-syntaxes letrec-syntaxes letrec-syntaxes+values