GithubHelp home page GithubHelp logo

new-scaladoc's People

Contributors

cvogt avatar yaroslavhq avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

cvogt

new-scaladoc's Issues

use collect for implementation of processPackage instead of manual re

  def processPackage(pack: Package): String = {
    val grouped: Map[String, Seq[DocElement]] = pack.elements.groupBy {
      case e: ClassDoc => "classes"
      case e: ObjectDoc => "objects"
      case e: TraitDoc => "traits"
      case e: DocElement => "nvm"
    }
    processObjects(grouped("objects").map(_.asInstanceOf[ObjectDoc]))

->

val objects = pack.elements.collect { case o: ObjectDoc => o }
processObjects(objects)

Frontend

Write frontend that goes from Scala source code to new-scaladoc trees. Wrap it all up, so you can go straight from source to PDF docs all the way.

make model as close to meta as possible

I would like to see this project help the efforts in scala meta and meta doc if in any way possible. One is to keep the trees as similar as possible, so that it is easy to take over code between the projects or interop as libraries.

It seems to me that the strategy should be that we replicate meta's trees in their current state, but add all doc relevant data that meta computes using a compiler as actual data into the model, e.g. super classes.

It sounds like metadoc is doing that (without having checked that). If that is the case, we can basically take a subset of metadoc's model as we go and eventually hopefully the full model and concentrate on the backends and improving metadocs model rather than newly inventing it from scratch.

So we should adapt the current model to metadoc's model (if it is true that it is designed as described above).

integrate with scala meta

plug scala meta in the front that starts with source code and write a converter that converts the corresponding trees to our trees. Plus wrap it all up as a full circle prototype.

Add Readme

What is this and why does the world need this?

How to run it and play with it?

What can you work on to improve this / important missing features?

resolve type references using meta's semantic api

Figure out if meta already works for resolving

  • parent types
  • inferred return types (decltype = None)
  • link companion / classes

If it does, let's use it to do that, otherwise let's just document here, where meta isn't ready yet. Integrating meta is fun, but we should aim for not being slowed down or blocked by meta's experimental stage. So not spend too much time on working around meta problems.

Make sure it "just works"

Clean up rough edges to make the "user experience" nice. Someone should be able to just install pdflatex, clone the project and smoothly run it on the sample sources.

fix indentation of strings in generator

some strings are weirdly indented, they should be something like (or close to)

class Baz{
  def foo = s"""dsfsfdsf"""
  def bar = s"""
    fsfsdf
    sdfsdfsdf
    sdfsdf
  """
}

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.