Skip to content

Search syntax

Camil Staps requested to merge search-syntax into master

Please let me merge, because the search-syntax branches on submodules have to be merged as well.

This adds:

  • 35 searchable syntax constructs with short descriptions, language report links and examples (resolves #130 (closed))
  • A documentation browser at /doc
  • Some predefined types (lists, arrays, tuples)
  • Some documentation and language report links on already existing predefined types, like World
  • Functionality for simple markup in documentation, to link to other searches and to format code in <code> (see Cloogle/README.md)
  • A fix for the autoscroll functionality on /src for Chromium

Changes:

  • The library browser has lost the <select> for libraries and now has a big tree instead (see below). This made it easier to generalise the browser for use on /doc as well. An other advantage is that you can now easily browse multiple libraries at the same time.
  • Following this, the /src URLs have changed, it would now be e.g. #Platform.Data.Map rather than ?lib=Platform#Data.Map. That means that old URLs are now broken.

To be done (partially after merging this):

  • It would be better to split the libraries in the tree on the library browser up in the "Clean 2.4", "Official" and "Miscellaneous" categories.
  • In the documentation, some internal links don't work properly (the links from the tree work fine).
  • In the documentation, it is not possible to navigate to umbrella sections. This should be possible.
  • Copyright notices for the documentation browser
  • Creating an annotated StdEnv to index where functions as _from_to have documentation to point to dotdot expressions.
  • clean.js needs to be extended to deal with some peculiarities; see the TODOs in Builtins.icl. This can go together with clean-cloogle/clean.js#1.

Not done for now are these syntax constructs, because they are very basic / very advanced or the construct has so many different meanings that it's not helpful to provide all. But they can be added:

This list is now outdated. See #180 (closed).

  • =: for newtypes
  • =: for the pattern check function
  • : for uniqueness variables (u:Int)
  • * for uniqueness
  • . for uniqueness
  • [u<=v] for uniqueness inequalities
  • | for guards and type contexts
  • & for type contexts (both in type contexts and on constructors)
  • , for type contexts
  • ^ for type references in dynamic patterns
  • :: for function and type definitions
  • = for function and type definitions
  • = and => to separate guards and alternative
  • -> and = to separate pattern and alternative in case expressions
  • array comprehensions
  • special for specialised class instances
  • export for class instance exports (this TypeClassInstanceDef in the language report seems to be outdated)
  • foreign, ccall and stdcall for foreign code exports
  • // and /* ... */ for comments

2017-09-29-081725_230x746

Merge request reports