Skip to content

Elm Oracle 2.0 #13

Open
Open
@ajhager

Description

@ajhager

There are a few issues with the current elm-oracle program:

  • Requires an internet connection + time to download documentation.json files, which might not always work and currently doesn't work behind a proxy.
  • Can only use information and data provided in documentation.json files, so no file position for 'jump to navigation', etc.
  • It is currently impossible to provide insight into the user's local codebase at all, only packages in elm-stuff.
  • Every time elm-oracle is queried, it rebuilds data from scratch without using a cache.
  • Loading up a node vm for each query can be a bit slow.
  • Other functionality, like previewing docs, might make sense in a tool that is meant to provide insight into an elm codebase.
  • Parse elm files instead of downloading documentation.json files.
    • Parse module (name, comment, location)
    • Parse imports (name, alias, exposing, location)
    • Parse functions (name, type, comment, location)
    • Parse types (name, args, cases, comment, location)
    • Parse aliases (name, args, type, comment, location)
    • Filter out all private values unless they are in the user's local project.
  • Parse elm-package.json files
    • Use "source-directories" to gather the correct .elm files to parse
    • Also parse the project's elm-package.json file so we can provide data on the user's local code
  • Store gathered data in a time-accessed based cache
  • Using the cache + the imports data of the current file, generate needed data.
  • Add a daemon mode that keeps running and responds to queries
  • Add a command that will generate a docs preview of your project that can be opened in your browser
  • Using the cache, generate tags files
    • ctags
    • etags

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions