Minor booklet cleanups
This commit is contained in:
@@ -29,7 +29,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-06-11T17:48:16.142343+02:00"
|
"dateAndTimeString" : "2022-06-11T20:46:56.443327+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
"paragraphStyle" : {
|
"paragraphStyle" : {
|
||||||
"__type" : "textStyle"
|
"__type" : "textStyle"
|
||||||
},
|
},
|
||||||
"string" : "Getting code to execute is most likely the most tricky part of adding a language to GT. Most of the code in the Carp IDE deals with handling that part of the IDE experience. Additionally, LanguageLink requires a custom server setup, which needed to be written outside of GT."
|
"string" : "Getting code to execute is most likely the most tricky part of adding a language to GT. Most of the code in the Carp IDE deals with handling that part of the IDE experience. Additionally, {{gtPackage:LanguageLink requires a custom server setup, which needed to be written outside of GT."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type" : "textSnippet",
|
"__type" : "textSnippet",
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-06-11T17:48:46.359725+02:00"
|
"dateAndTimeString" : "2022-06-11T17:49:02.268331+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
"paragraphStyle" : {
|
"paragraphStyle" : {
|
||||||
"__type" : "textStyle"
|
"__type" : "textStyle"
|
||||||
},
|
},
|
||||||
"string" : "Because both parts of this process make a cohesive whole, I split this chapter into two sub-chapters, [[B"
|
"string" : "Because both parts of this process make a cohesive whole, I split this chapter into two sub-chapters, [[Building a LanguageLink client]] and [[Building a LanguageLink server]]."
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@@ -29,7 +29,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-06-11T17:48:16.142343+02:00"
|
"dateAndTimeString" : "2022-06-11T20:47:09.979091+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
|
@@ -103,7 +103,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-04-17T18:04:44.753707+02:00"
|
"dateAndTimeString" : "2022-04-18T21:16:33.659248+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
"paragraphStyle" : {
|
"paragraphStyle" : {
|
||||||
"__type" : "textStyle"
|
"__type" : "textStyle"
|
||||||
},
|
},
|
||||||
"string" : "Apart from that, I fear, I cannot help you much if things don’t go as planned. But maybe some of the things we will discuss in the next section, [[Building a parser from scratch]], will help you get from something that generates a raw parse tree to something that generates a real usable AST for your language. Take a peek!"
|
"string" : "Apart from that, I fear, I cannot help you much if things don’t go as planned. But maybe some of the things we will discuss in the next section, [[Building a parser from scratch]], will help you get from something that generates a raw parse tree to something that generates a real usable AST for your language (look at Step II if you want to skip ahead). Take a peek!"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@@ -66,7 +66,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-04-17T18:03:21.19204+02:00"
|
"dateAndTimeString" : "2022-06-11T20:48:50.30896+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
|
@@ -510,7 +510,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-04-18T21:22:40.888776+02:00"
|
"dateAndTimeString" : "2022-04-18T21:22:56.54305+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
@@ -520,7 +520,7 @@
|
|||||||
"paragraphStyle" : {
|
"paragraphStyle" : {
|
||||||
"__type" : "textStyle"
|
"__type" : "textStyle"
|
||||||
},
|
},
|
||||||
"string" : "If you need another, simple example for a complete parser generating an"
|
"string" : "If you need another, simple example for a complete parser generating an AST, you might want to check out the {{gtClass:JSONParser}}."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type" : "textSnippet",
|
"__type" : "textSnippet",
|
||||||
|
@@ -214,7 +214,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-04-18T21:12:52.520639+02:00"
|
"dateAndTimeString" : "2022-06-11T20:49:10.152867+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
|
@@ -140,7 +140,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-04-17T17:57:41.124314+02:00"
|
"dateAndTimeString" : "2022-04-17T17:58:06.623815+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
@@ -150,7 +150,7 @@
|
|||||||
"paragraphStyle" : {
|
"paragraphStyle" : {
|
||||||
"__type" : "textStyle"
|
"__type" : "textStyle"
|
||||||
},
|
},
|
||||||
"string" : "You might also want to take a look at the esecti{{gtPage:How to parse sources in different languages|db=2j9m7db2i4oz116bexd7wbdxo}}"
|
"string" : "You might also want to take a look at the section {{gtPage:How to parse sources in different languages|db=2j9m7db2i4oz116bexd7wbdxo}} in the Glamorous Toolkit book to get an overview. Maybe the language you want to add is already there!"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@@ -140,7 +140,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-04-17T17:58:06.623815+02:00"
|
"dateAndTimeString" : "2022-06-11T20:48:23.867543+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
|
@@ -140,7 +140,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-06-10T16:44:28.640047+02:00"
|
"dateAndTimeString" : "2022-06-11T20:50:28.716326+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
@@ -177,7 +177,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-06-10T16:47:01.610149+02:00"
|
"dateAndTimeString" : "2022-06-10T16:47:24.613405+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
"paragraphStyle" : {
|
"paragraphStyle" : {
|
||||||
"__type" : "textStyle"
|
"__type" : "textStyle"
|
||||||
},
|
},
|
||||||
"string" : "In Carp, I also went down the extra mile of coloring parentheses according to their nesting level. The code for this is inside the rule for lists, maps and arrays, and it uses {{gtClass:CarpStylerUtilities}} to color the parentheses and register an event for when the cursor enters or leaves the region to highlight it. Should you want more complex highlighting and change it based on cursor position"
|
"string" : "In Carp, I also went down the extra mile of coloring parentheses according to their nesting level. The code for this is inside the rule for lists, maps and arrays, and it uses {{gtClass:CarpStylerUtilities}} to color the parentheses and register an event for when the cursor enters or leaves the region to highlight it. Should you want more complex highlighting and change it based on cursor position and interactions, this might give you a taste of how to do it."
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@@ -140,7 +140,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-06-10T16:44:28.640047+02:00"
|
"dateAndTimeString" : "2022-06-11T20:50:30.609796+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
|
@@ -66,7 +66,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-06-11T18:25:16.445558+02:00"
|
"dateAndTimeString" : "2022-06-11T20:45:57.641893+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
"paragraphStyle" : {
|
"paragraphStyle" : {
|
||||||
"__type" : "textStyle"
|
"__type" : "textStyle"
|
||||||
},
|
},
|
||||||
"string" : "Creating a snippet type is actually quite simple. Almost all of the code for Carp is in the Carp package, under the tag Lepiter (TODO: gtPackage annotation would be great). The most important class is likely {{gtClass:LeCarpSnippet}}, because like {{gtClass:CarpApplication}} for LanguageLink, this class is the central player around which the rest of the team organizes."
|
"string" : "Creating a snippet type is actually quite simple. Almost all of the code for Carp is in {{gtPackage:Carp}}. The most important class is likely {{gtClass:LeCarpSnippet}}, because like {{gtClass:CarpApplication}} for LanguageLink, this class is the central player around which the rest of the team organizes."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type" : "textSnippet",
|
"__type" : "textSnippet",
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-06-11T18:29:22.376041+02:00"
|
"dateAndTimeString" : "2022-06-11T18:29:42.230718+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
"paragraphStyle" : {
|
"paragraphStyle" : {
|
||||||
"__type" : "textStyle"
|
"__type" : "textStyle"
|
||||||
},
|
},
|
||||||
"string" : "Most of the code you will write will just be specialization over readily-available Lepiter classes. The only things that will be truly custom will most likely be your version of {{gtClass:LeExternalServerStrategy}} (in the case of Carp that is {{gtClass:LeCarpApplicationStrategy}}), which will bridge the gap between your LanguageLink application and the snippet itself, and your {{gtClass:GtSourceCoder}}, which"
|
"string" : "Most of the code you will write will just be specialization over readily-available Lepiter classes. The only things that will be truly custom will most likely be your version of {{gtClass:LeExternalServerStrategy}} (in the case of Carp that is {{gtClass:LeCarpApplicationStrategy}}), which will bridge the gap between your LanguageLink application and the snippet itself, and your {{gtClass:GtSourceCoder}} ({{gtClass:GtCarpCoderModel}})."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type" : "textSnippet",
|
"__type" : "textSnippet",
|
||||||
|
@@ -66,7 +66,7 @@
|
|||||||
"__type" : "time",
|
"__type" : "time",
|
||||||
"time" : {
|
"time" : {
|
||||||
"__type" : "dateAndTime",
|
"__type" : "dateAndTime",
|
||||||
"dateAndTimeString" : "2022-06-11T18:25:16.445558+02:00"
|
"dateAndTimeString" : "2022-06-11T20:46:02.5892+02:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uid" : {
|
"uid" : {
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
"paragraphStyle" : {
|
"paragraphStyle" : {
|
||||||
"__type" : "textStyle"
|
"__type" : "textStyle"
|
||||||
},
|
},
|
||||||
"string" : "Creating a snippet type is actually quite simple. Almost all of the code for Carp is in the Carp package, under the tag Lepiter (TODO: gtPackage annotation would be great). The most important class is likely {{gtClass:LeCarpSnippet}}, because like {{gtClass:CarpApplication}} for LanguageLink, this class is the central player around which the rest of the team organizes."
|
"string" : "Creating a snippet type is actually quite simple. Almost all of the code for Carp is in {{gtPackage:Carp|tag=Lepiter}}. The most important class is likely {{gtClass:LeCarpSnippet}}, because like {{gtClass:CarpApplication}} for LanguageLink, this class is the central player around which the rest of the team organizes."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type" : "textSnippet",
|
"__type" : "textSnippet",
|
||||||
|
Reference in New Issue
Block a user