profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/amiralies/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Amirali Esmaeili amiralies @sanjagh Tehran, Iran amiralies.github.io

amiralies/coc-flow 24

Flow language server extension for coc.nvim

amiralies/metalarchives-api 20

RESTful API for metal-archives.com

amiralies/coc-discord 17

discord rich presence for coc.nvim

amiralies/metalarchives-telegram-bot 7

Telegram Bot for metal-archives.com

amiralies/dotfiles 4

Dotfiles

amiralies/caliban-demo 0

Code for my graphql talk. demoing Caliban

amiralies/coc-metals 0

coc.nvim extension for Metals, the Scala language server

amiralies/coc.nvim 0

Intellisense engine for vim8 & neovim, full language server protocol support as VSCode

amiralies/daily-coding-problem 0

Solutions for Daily Coding Problem.

pull request commentjparise/vim-graphql

Add rescript support

Thank you jon!

amiralies

comment created time in 3 days

pull request commentjparise/vim-graphql

Add rescript support

I'll do that, it's basically same as reason though with different start/end tokens

amiralies

comment created time in 9 days

PR opened jparise/vim-graphql

Add rescript support
+54 -0

0 comment

2 changed files

pr created time in 12 days

create barnchamiralies/vim-graphql

branch : rescript-support

created branch time in 12 days

fork amiralies/vim-graphql

A Vim plugin that provides GraphQL file detection, syntax highlighting, and indentation.

fork in 12 days

issue openedreasonml-community/graphql-ppx

__typename on unions not working

testing master with a sdl schema, looks like i can get __typename on unions.

schema {
  query: Queries
}

type Queries {
  getUsers: [User!]!
}

type User {
  id: String!
  role: Role!
}

union Role = Admin | Member

type Admin {
  y: Int!
}

type Member {
  x: Int!
}

query:

query { 
  getUsers {
    role {
      ... on Member {
        __typename
        x
      }

      ... on Admin {
        y
      }
    }
  }
}

created time in 15 days

pull request commentrickyvetter/reductive

Migrate to rescript

@Minnozz I can address the issues but I'm curious if ricky @rickyvetter willing to continue maintaining this since I didn't get response from him

amiralies

comment created time in 15 days

issue commentrescript-lang/rescript-vscode

Type hint via codelens for pipeline operator

There's an issue on syntax repo about smart printing pipelines.

speaking of lens fot let bindings , I also think that's an improvement we can work on but for me hover is enough for let bindings but hovering on pipelines do not give enough information.

amiralies

comment created time in 16 days

issue commentrescript-lang/syntax

Error message for optional arguments is incorrect.

I think this is related to #447 (unreleased)

johnridesabike

comment created time in 19 days

issue openedrescript-lang/rescript-compiler

Exotic "TAG" field in inline records results in unexpected behavior

type t = Admin({id: string, \"TAG": int}) | Member({id: string, age: int})

let admin = Admin({id: "0", \"TAG": 231})

let isAdmin = user =>
  switch user {
  | Admin(_) => true
  | Member(_) => false
  }

Js.log(isAdmin(admin)) // false


created time in 21 days

issue commentrescript-lang/rescript-compiler

Move the syntax inside the compiler repo

the compiler-libs is currently vendored in editor analysis project. there's no opam in there (we don't use any dependency). moving editor analysis project to this repo might be good idea since it also uses syntax repo (currently just for printing types with outcometree) and it's being updated occasionally.

about build system IMHO using dune would improve general dx and contributing experience. makefile ocamlopt/ninja was not a big deal for me to hack around these projects but using dune would definitely improve the experience since it's now the defacto build system in the community and matches the ecosystem / toolings like ocaml-lsp etc. having said that at the on of the day the build system that matches the project goal should be used but that ws my personal thought on dune.

bobzhang

comment created time in 21 days

issue commentrescript-lang/vim-rescript

add rescript support to vim-polyglot

this repo does more than just syntax highlighting (intellisense stuff and others) if it's okay for them to increase the installation size you can send a pr for them.

mudrz

comment created time in 22 days

issue commentrescript-lang/rescript-vscode

Declaration of an object with an empty key breaks language server.

This is becuase server is failing to parse the error message.

about empty object keys, they are not supported at the moment so we should either make parser to disallow them or make the compiler support them, I think since the object access syntax is updated (x[""]) we can make the compiler to allow them.

about the crash, I think this is happening because the compiler log parser is throwing we should make that more resilient

not-rusty

comment created time in 22 days

issue commentrescript-lang/rescript-compiler

Support empty string as a valid key in a Js.t object

@bobzhang should we allow this since object access syntax is now x[""] ?

nireno

comment created time in 22 days

issue commentrescript-lang/rescript-vscode

[neovim / native LSP] server quit when self cycle

possible duplicate of #212

kiuKisas

comment created time in 23 days

issue commentrescript-lang/rescript-vscode

[neovim/ native LSP] add sypport for symbol (symbols-outilne.nvim)

we actually got this feature but since there's a bug in vscode which results in stale output inside vscode's output pane it is disabled. see #176

if you build server from source you can enable it manually for your usage. take a look at #272 if you want to.

kiuKisas

comment created time in 23 days

issue commentrescript-lang/rescript-vscode

Error in path handling if it contains '#' symbol

do other features like hover work?

this is porbably a bug in parsing diagnostics from compiler log.

ila-embsys

comment created time in 23 days

create barnchamiralies/syntax

branch : reasonreact-naming

created branch time in 24 days

issue openednkrkv/tree-sitter-rescript

add support for character literals/patterns

these may be useful https://ocaml.org/manual/lex.html#sss:character-literals https://github.com/tree-sitter/tree-sitter-ocaml/blob/master/ocaml/grammar.js#L1804

created time in 24 days

startednkrkv/tree-sitter-rescript

started time in 25 days

issue openedrescript-lang/syntax

Feature request: Print explicit curried functions in curried syntax

i.e print

let add = x => y => x + y

as it is instead of

let add = (x, y) => x + y

created time in a month

Pull request review commentrescript-lang/syntax

Prevent printer from throwing when printing longident

 let printPolyVarIdent txt =     | NormalIdent -> Doc.text txt  -let printLident l = match l with+let printLident l =+  let rec hasLapply = function+  | Longident.Lident _ -> false+  | Longident.Ldot (path, _) -> hasLapply path+  | Longident.Lapply _ -> true+  in+  match l with   | Longident.Lident txt -> printIdentLike txt-  | Longident.Ldot (path, txt) ->+  | Longident.Ldot (path, txt) when not (hasLapply path) ->

I'm not sure, maybe we can just ignore it since it's only happening when parsing from reason / ml.

amiralies

comment created time in a month

PullRequestReviewEvent

issue commentrescript-lang/rescript-compiler

[Feature Request] Print pattern matching exhaustiveness warnings in rescript syntax

When converting Tpat_construct and Tpat_record it uses pattern's longident to convert into Ppat_... For example for a constructor like Done the longident is like #$Done0 i think it should use cstr_desc.cstr_name. same story for record labels.

amiralies

comment created time in a month

issue commentrescript-lang/rescript-compiler

[Feature Request] Print pattern matching exhaustiveness warnings in rescript syntax

Okay I got something working but the way Untypeast.default_mapper.pat untypes patterns is not going well with pattern printer in Res_printer so I think i've to introduce another function to untype a pattern.

Now I think it's the right way the we are going to use the pattern printer from Res_printer rathar than a custom pattern printer like the one in parmatch for ml because it results in duplicated logic and there are some edge case like exotic idents/variants etc that are well handled in Res_printer

amiralies

comment created time in a month

issue commentrescript-lang/rescript-compiler

[Feature Request] Print pattern matching exhaustiveness warnings in rescript syntax

I think both are okay. the second approach would look something like this

let print_pat (p: Typedtree.pattern) =
  let pattern = Untypeast.default_mapper.pat Untypeast.default_mapper p in
  let doc = Res_printer.printPattern pattern Res_comments_table.empty in
  Res_doc.toString ~width:80 doc

is this ok for the above function to live in Parmatch? if so, how can i access to napkin modules? i'm not familiat with build configurations in the project.

amiralies

comment created time in a month

issue commentrescript-lang/rescript-compiler

[Feature Request] Print pattern matching exhaustiveness warnings in rescript syntax

@bobzhang I'm going to work on this do you think it should be done in syntax codebase as a module for printing patterns (like what we have for outcome tree) or it should be done inside current parmtch.ml module which prints in ml syntax?

amiralies

comment created time in a month

issue openedrescript-lang/rescript-vscode

feature: support auto completion for object fields

i.e

type t: {"foo": string, "bar": int}

let x = {"foo": "str", "bar": 2}

let b = x[" // auto complete available fields here

created time in a month

issue commentrescript-lang/vim-rescript

Neovim LSP support

@barkanido It depends on your config. do you have exact same problem as above?

gasacchi

comment created time in a month