BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//pretalx//pretalx.com//bob-2025//talk//PJVCXA
BEGIN:VTIMEZONE
TZID:CET
BEGIN:STANDARD
DTSTART:20001029T040000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20000326T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:pretalx-bob-2025-PJVCXA@pretalx.com
DTSTART;TZID=CET:20250314T135000
DTEND;TZID=CET:20250314T143500
DESCRIPTION:Domain-specific languages (DSL) are well-studied tools for solv
 ing problems specific to a domain.\nEspecially in the Haskell Community\, 
 DSLs are quite popular due to parser-combinators and succinct definitions 
 of abstract syntax trees (AST).\nHowever\, it is often difficult to integr
 ate a particular DSL into any modern IDE.\nThis causes a DSL to be harder 
 to use in practice and negatively affects productivity.\nSometimes\, devel
 opers combat this by implementing plugins that introduce syntax highlighti
 ng specific to an editor.\nHowever\, we argue that it is preferable to use
  existing infrastructure\, such as the Language Server Protocol\, which pr
 ovides out-of-the-box IDE support for most editors.\n\nIn this talk\, we f
 ocus on key challenges for implementing a Language Server\, as a Language 
 Server simply has different requirements from a parser or an interpreter.\
 nWe discuss how to approach the design and implementation of a DSL such th
 at we get Language Server support (almost) for free.\nIn particular\, we s
 how how to provide advanced IDE features\, such as semantics-aware syntax 
 highlighting or automatic refactorings\, with minimal effort.\nTo implemen
 t this\, we augment the AST to retain additional information about the sou
 rces\, such as parentheses\, comments\, and whitespace\, in a non-intrusiv
 e way.
DTSTAMP:20260519T224027Z
LOCATION:Talks A
SUMMARY:A Language Server for your DSL for free - Andres Löh\, Hannes Sieb
 enhandl
URL:https://pretalx.com/bob-2025/talk/PJVCXA/
END:VEVENT
END:VCALENDAR
