Skip to content

Instantly share code, notes, and snippets.

@EduardoRFS
Last active May 27, 2021 23:54
Show Gist options
  • Save EduardoRFS/682c33464c4bebde5988c9ca9313fedd to your computer and use it in GitHub Desktop.
Save EduardoRFS/682c33464c4bebde5988c9ca9313fedd to your computer and use it in GitHub Desktop.

ocaml-platform

  • type based auto complete
  • semantic highlighting
  • let%ppx abc = "def"; syntax highlighting
  • autocomplete when backspace
  • autocomplete on f(g(~expr=here)) sucks
  • let.bind auto complete

esy

  • seems to lack github: https://github.com/esy/esy/blob/master/docs/using-dev-sources-workflow.md
  • format json using prettier
  • resolution.source can be only a github link not a local link
  • resolutions shouldn't remove any version constraint
  • lock on esy-build-package/Build.re
  • esy exec-command not working with package, auto adding current package
  • scripts support array like esy.build
  • RFC proposal build time deps only
  • fix: "#{@_linux.alpine.x86_64/_opam_ocaml_secondary_compiler.install}/native-sysroot"

Revery

  • multi screen
  • high refresh rate

refmterr

  • This module doesn't match its signature improvement
  • dune build watch

ppx

  • Console.log using the typed AST
  • ppx concat strings well

dune

  • (modes (native object)) with shared library
  • bucklescript mode
  • rehp integration, maybe pesy?
  • mix ppx, like metaquot on sedlex

esy cross

  • buildDeps don't need to have a single solution, X depends on Y@1 and Z depends on Y@2 should be possible

Cross Compiler

  • native cross compiler
  • bootstrap ocamlrun for the native platform
  • support multiple targets ocaml compiler(essentially allow to customize the emitter in runtime)
  • mock xcode-select

rely

  • BS 7.02 and refmt supports to comments with //

ocaml-lsp

  • uses esy for bucklescript projects

JSON

  • dealing with missing keys

Bucklescript

  • Runtime FFI checking

  • Integration with webpack + typescript by instantiating a bsb

  • string interpolation uses ${var} instead of $var

  • syntax to bind this: bind to arr.map(f1).forEach(f2) as arr |> map(f1) |> forEach(f2)

  • currying rehp

Opium

  • upstream httpaf rebase
  • gluten-luv for http/af and h2

reason-language-server

  • support to 4.09
  • semantic highlight

refmt

  • pipe more than 3 functions should always break the line, ex (a |> b |> c |> d)
  • if one array item breaks line, all array items should also break line
  • improve error type t = { a: int, b: Attributes }
  • reasonml/reason#2001
  • bug type t = {. ...Com.Github.Eduardorfs.Potato.Unsafe.Please.Stop.unsafe_t};
  • also recursive module type using with to substitute value
  • use ppx_import to have invalid_node on the ast
  • fn(x)\n() isn't fn(x)()
  • module on .re .rei has different formatting

Guard

  • allow to do that | when starts_with("darwin") => Some(Darwin)

Open

  • stop auto converting { open XXX } to XXX.({})

sedlex

  • it sucks

Class Syntax

  • Methods should always need () =>
  • perhaps call methods without any argument as getters
  • Modules accept something like Jni.({}) instead of needing to open Jni
  • as _ being mandatory is quite weird
  • pub for methods and fields seems weird but I need to revisit this
  • module missing ; followed by class doesn't auto fill.
  • class resiliant to class type x {} if you forgot the semicolon
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment