@@ -2419,69 +2419,8 @@ TODO
24192419 (check-equal? (simplify-history-element in #t )
24202420 (old-conversion-code in))))
24212421
2422- (define (fetch-hash-lang-str text)
2423- (define special-tp (open-input-text-editor text))
2424- (define (special-filter f bytes)
2425- ;; @ is not accepted anywhere in the regexp below
2426- (bytes-set! bytes 0 (char->integer #\@ ))
2427- 1 )
2428- (define tp (special-filter-input-port special-tp special-filter))
2429- (port-count-lines! tp)
2430- (skip-past-comments tp)
2431- (define-values (_1 _2 pos-before) (port-next-location tp))
2432- (cond
2433- [(regexp-match? #rx"^#lang [a-zA-Z0-9+_/-]+ " tp)
2434- (define c (peek-char tp))
2435- (cond
2436- [(eof-object? c)
2437- (define-values (line col pos-after) (port-next-location tp))
2438- (send text get-text (- pos-before 1 ) pos-after)]
2439- [(char-whitespace? c)
2440- (define-values (line col pos-after) (port-next-location tp))
2441- (send text get-text (- pos-before 1 ) (- pos-after 1 ))]
2442- [else #f ])]
2443- [else #f ]))
2444-
2445- (module+ test
2446- (check-equal? (let ([t (new text%)])
2447- (send t insert "blah " )
2448- (fetch-hash-lang-str t))
2449- #f )
2450- (check-equal? (let ([t (new text%)])
2451- (send t insert "#lang racket " )
2452- (fetch-hash-lang-str t))
2453- "#lang racket " )
2454- (check-equal? (let ([t (new text%)])
2455- (send t insert " #lang racket " )
2456- (fetch-hash-lang-str t))
2457- "#lang racket " )
2458- (check-equal? (let ([t (new text%)])
2459- (send t insert "#lang racket " )
2460- (fetch-hash-lang-str t))
2461- "#lang racket " )
2462- (check-equal? (let ([t (new text%)])
2463- (send t insert "#lang racket\n " )
2464- (fetch-hash-lang-str t))
2465- "#lang racket " )
2466- (check-equal? (let ([t (new text%)])
2467- (send t insert "#lang racket fjd ej ej " )
2468- (fetch-hash-lang-str t))
2469- "#lang racket " )
2470- (check-equal? (let ([t (new text%)])
2471- (send t insert ";; a\n#lang racket fjd ej ej " )
2472- (fetch-hash-lang-str t))
2473- "#lang racket " )
2474- (check-equal? (let ([t (new text%)])
2475- (send t insert ";; a " )
2476- (define es (new editor-snip%))
2477- (send t insert es)
2478- (send t insert "\n#lang racket " )
2479- (fetch-hash-lang-str t))
2480- "#lang racket " )
2481- (check-equal? (let ([t (new text%)])
2482- (send t insert "#lang rac " )
2483- (define es (new editor-snip%))
2484- (send t insert es)
2485- (send t insert "ket\n " )
2486- (fetch-hash-lang-str t))
2487- #f ))
2422+ (define (fetch-hash-lang-str definitions-text)
2423+ (define the-irl (send definitions-text get-irl))
2424+ (define-values (before after)
2425+ (get-read-language-port-start+end (send definitions-text get-irl)))
2426+ (and after (send definitions-text get-text 0 after)))
0 commit comments