Git Product home page Git Product logo

rascal-tutor's People

Contributors

jjwtimmer avatar jurgenvinju avatar paulklint avatar rodinaarssen avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

seanpm2001

rascal-tutor's Issues

Can't run the tutor on itself via the rascal-maven-plugin anymore

[ERROR] Failed to execute goal org.rascalmpl:rascal-maven-plugin:0.18.1:tutor (default-cli) on project rascal-tutor: Execution default-cli of goal org.rascalmpl:rascal-maven-plugin:0.18.1:tutor failed: Could not import module lang::rascal::tutor::Compiler: can not find in search path
[ERROR] Advice: |https://www.rascal-mpl.org/docs/Rascal/Errors/CompileTimeErrors/ModuleImport|

This is due to the following:

[INFO] rascal module path addition: |lib://rascal-tutor|

Here because |project://rascal-tutor| is also defined, the current source code in the target folder is superseding the library linked in the rascal-maven-plugin. So we have two bootstrap-levels mixed and since the source files haven't been packaged into the target folder yet, we are also not accidentally running our own code on our own code.

This is currently blocking a release of a newer tutor with better documentation of itself, and better error handling.

datatype fragment links broken

The first is the link used to jump to a definition, the second is what the anchor is defined as:

http://localhost:3000/docs/Library/vis/Charts/#vis-Charts-ChartAutoColors
http://localhost:3000/docs/Library/vis/Charts/#vis::Charts-ChartAutoColors

integrate name resolution of rascal type-checker into Rascal code examples

I don't know how to add links to the docusaurus code blocks, or if this could work at all from the client side, but it would be great if we could feed the resolution of names of the type-checker into the documentation generator. That way people could browse in the documented APIs like they can with some Github source code viewers.

  • This would take more computation time, so it could be an optional feature for the final publishing stage instead of during a preview.
  • Reuse type-checker code from rascal-core which also uses timestamps for incrementalization
  • Extracting the right def-use information from .tpl files is already done; this is a basic IDE construction feature we use in VScode and Eclipse
  • What happens on the client side with multiple, non-unitary, link targets?

This sounds like a team effort @PaulKlint @JJWTimmer. Maybe we could have a call/meeting sometime in Feb?

stackoverflow during pattern compilation

[ERROR] Failed to execute goal org.rascalmpl:rascal-maven-plugin:0.12.3:tutor (default-cli) on project website: Execution default-cli of goal org.rascalmpl:rascal-maven-plugin:0.12.3:tutor failed: Stack overflow during pattern compilation near index 2
[ERROR] (?:(?<!\\)|(?<=\\\\))<([a-zA-Z0-9]+)(?:\s*:\s*((?:[^\\<>]|(?:\\[\\<>])|(?:\\)|(?:<[a-zA-Z0-9]+>))*))?>

This is on an input with many literal source locations (and so many \\\). Run mvn compile in rascal-website, branch local-courses to trigger the bug.

Document @memo tags

If a function has @memo then make sure the documentation automatically and clearly says what this means for the semantics of the function

`module:` prefixed link resolves something else than a module?

Tutor/Markup/InlineMarkup/Listing/Listing.md:39:0: Ambiguous concept link: module:Content resolves to all of these: //Library/Content.md //Library/Content.md#Content-Content
  • Content is a data or an alias in the module Content
  • by prefixing the link with module only modules should be linked.
  • this is probably a copy/paste issue in the Linker of the tutor compiler.

packages don't have links

((clair)) does not work, for example. propose to add ((package:clair)) and friends and not just ((clair)) by itself (too many clashes otherwise, consider ((typepal)) and ((flybytes)) where these links already exist as module package folders.

tutor now breaks on project names with dashes, like `salix-core`

There is a renaming going on to SalixCore that is not done consistently, leading to eventually to this during yarn build in the rascal-website project. This means that the markdown that was generated during the release of salix-core is broken.

Exhaustive list of all broken links found:

- On source page path = /docs/Packages/SalixCore/API/:
   -> linking to ../../../Packages/SalixCore/API/salix/ (resolved as: /docs/Packages/SalixCore/API/salix/)

    at throwError (/Users/jurgenv/Sites/rascal-website/node_modules/@docusaurus/logger/lib/index.js:76:11)
    at handleBrokenLinks (/Users/jurgenv/Sites/rascal-website/node_modules/@docusaurus/core/lib/server/brokenLinks.js:153:47)
    at async buildLocale (/Users/jurgenv/Sites/rascal-website/node_modules/@docusaurus/core/lib/commands/build.js:177:5)
    at async tryToBuildLocale (/Users/jurgenv/Sites/rascal-website/node_modules/@docusaurus/core/lib/commands/build.js:38:20)
    at async mapAsyncSequential (/Users/jurgenv/Sites/rascal-website/node_modules/@docusaurus/utils/lib/jsUtils.js:34:24)
    at async Command.build (/Users/jurgenv/Sites/rascal-website/node_modules/@docusaurus/core/lib/commands/build.js:73:21)

module variables are not documented

although they can be essential in understanding demo code, and also the API of reusable modules (global configuration is often stored in module variables)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.