Skip to content

Commit

Permalink
Use a macro to DRY the pdb dynamic-requires
Browse files Browse the repository at this point in the history
  • Loading branch information
greghendershott committed Mar 21, 2023
1 parent 9021e59 commit c58453c
Showing 1 changed file with 17 additions and 27 deletions.
44 changes: 17 additions & 27 deletions racket/commands/check-syntax.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@

#lang racket/base

(require data/interval-map
(require (for-syntax racket/base)
data/interval-map
drracket/check-syntax
racket/dict
racket/format
racket/match
racket/set
racket/string
racket/class
drracket/check-syntax
syntax/parse/define
"../imports.rkt"
"../online-check-syntax.rkt"
"../syntax.rkt"
Expand Down Expand Up @@ -69,31 +71,19 @@

;;; pdb checked syntax (if available)

(define-values (pdb-check-syntax?
analyze-path
get-errors
get-annotations
get-completion-candidates
use->def
rename-sites)
(with-handlers ([exn:fail?
(λ (e)
(log-racket-mode-info "Using classic check-syntax:\n~a"
(exn-message e))
(values #f
void
void
void
void
void
void))])
(values #t
(dynamic-require 'pdb 'analyze-path)
(dynamic-require 'pdb 'get-errors)
(dynamic-require 'pdb 'get-annotations)
(dynamic-require 'pdb 'get-completion-candidates)
(dynamic-require 'pdb 'use->def)
(dynamic-require 'pdb 'rename-sites))))
(define-syntax-parser define-from-pdb
[(_ pred:id [id:id ...])
#`(define-values (pred id ...)
(with-handlers ([exn:fail?
(λ (e)
(log-racket-mode-info "Using classic check-syntax:\n~a"
(exn-message e))
(values #f #,@(map (λ _ void) (syntax->list #'(id ...)))))])
(values #t (dynamic-require 'pdb 'id) ...)))])

(define-from-pdb pdb-check-syntax?
[analyze-path get-errors get-annotations get-completion-candidates
use->def rename-sites])

(define (do-check-syntax path-str code-str)
((if pdb-check-syntax? do-pdb-check-syntax do-old-check-syntax)
Expand Down

0 comments on commit c58453c

Please sign in to comment.