1
1
mirror of https://github.com/github/semantic.git synced 2024-11-28 10:15:55 +03:00
Commit Graph

28569 Commits

Author SHA1 Message Date
Rob Rix
d147bb8b28
Merge pull request #191 from github/fix-graph-vertex-ids
Include vertex IDs in JSON graph output and fix their format.
2019-07-02 14:35:19 -07:00
Patrick Thomson
785ba4dcea Include vertex IDs in JSON graph output and fix their format.
As reported in #189, the `edges` field of JSON graph output refers to
information not reflected in the rest of the output, specifically the
vertex IDs. This patch adds that information to the `ToJSON` instance
for `ControlFlowVertex`. It also includes a `toEncoding` instance for
a free speed boost.

During this patch, I realized that, because `hash` tends to return a
large number (since `Int` is 64-bit), we may run into errors when
decoding JSON. One example hash is `3500157981503982114`; passing that
to a JS engine's `Number.isSafeInteger` function returns false. The
correct thing to do here is return ids as strings, which I have done.
This is backwards-incompatible, but since this information was never
properly exposed, the impact is negligable.
2019-07-02 11:24:52 -04:00
Josh Vera
b4792db252
Merge pull request #179 from github/add-php
Fix PHP assignment parsing
2019-06-25 15:28:14 -04:00
Josh Vera
3dea3d7e34
Merge branch 'master' into add-php 2019-06-25 15:11:19 -04:00
Rob Rix
e0ff53e3f3
Merge pull request #180 from github/fix-bad-proto-type
Fix DiffTreeVertexDiffTerm definition to be a valid protobuf object.
2019-06-25 11:56:55 -07:00
Rob Rix
72ad90fcb6
Merge branch 'master' into fix-bad-proto-type 2019-06-25 11:46:17 -07:00
Rob Rix
4629d0c140
Merge pull request #119 from github/semantic-python
Python support using Core
2019-06-25 11:35:34 -07:00
Rob Rix
324e605c3c
Run the doctests in CI. 2019-06-25 14:28:40 -04:00
Rob Rix
ffdefb05e9
Fix the doctest for concrete. 2019-06-25 14:27:50 -04:00
Rob Rix
58d819f81a
Turn on overloaded strings in the doctests. 2019-06-25 14:26:46 -04:00
Rob Rix
ce1d209b5e
Correct the doctest runner. 2019-06-25 14:24:49 -04:00
Rob Rix
2009e4ab93
Fix the IsString instance. 2019-06-25 14:21:42 -04:00
Rob Rix
2f077365e2
Generate Text. 2019-06-25 14:21:36 -04:00
Patrick Thomson
90fabfe6f5 Fix DiffTreeVertexDiffTerm definition to be a valid protobuf object.
We define the DiffTreeVertex protobuf message like so:

```protobuf
message DiffTreeVertex {
  int32 diff_vertex_id = 1;
  oneof diff_term {
    DeletedTerm deleted = 2;
    InsertedTerm inserted = 3;
    ReplacedTerm replaced = 4;
    MergedTerm merged = 5;
  }
}
```

This is turned into two Haskell types, a toplevel `DiffTreeVertex` type
and a `DiffTreeVertexDiffTerm` type that represents the anonymous
`oneof` type. Said types looked like so:

```haskell
data DiffTreeVertexDiffTerm
  = Deleted (Maybe DeletedTerm)
  | Inserted (Maybe InsertedTerm)
  | Replaced (Maybe ReplacedTerm)
  | Merged (Maybe MergedTerm)
  deriving stock (Eq, Ord, Show, Generic)
  deriving anyclass (Proto3.Message, Proto3.Named, NFData)
```

This is the wrong representation, as it neglects to account for the
fact that options could be added to the `diff_term` stanza. A sum type
does not provide enough constructors to handle the case of when none
of `deleted`, `inserted`, `replaced` etc. is `Just` anything. A more
correct definition follows:

```haskell
data DiffTreeVertexDiffTerm = DiffTreeVertexDiffTerm
  { deleted :: Maybe DeletedTerm
  , inserted :: Maybe InsertedTerm
  , replaced :: Maybe ReplacedTerm
  , merged :: Maybe MergedTerm
  }
```

This patch applies the above change, using `-XPatternSynonyms` to
provide backwards-compatible API shims. Though this changes JSON
output format (through the `ToJSON` instance), it should have no
bearing on backwards compatibility in protobuf objects, since there is
no way to consume diff trees as protobufs as of this writing.

Fixes #168.
2019-06-25 13:31:36 -04:00
Rob Rix
6097e4509e
🔥 an obsolete FIXME. 2019-06-25 13:13:05 -04:00
Rob Rix
9ea288a36d
Merge branch 'master' into semantic-python 2019-06-25 10:08:47 -07:00
Josh Vera
3daee383dc
Merge branch 'master' into add-php 2019-06-25 12:28:25 -04:00
joshvera
6863168acb Add phpt to extensionsForLanguage 2019-06-25 11:01:02 -04:00
joshvera
f911766986 Add phpASTParser 2019-06-25 10:35:56 -04:00
joshvera
cc4cc62411 Assign FormalParameters in parameters 2019-06-25 10:35:44 -04:00
joshvera
275de222de Add php to code nav languages 2019-06-24 17:33:03 -04:00
Rob Rix
9d1c0249c0
Merge pull request #177 from github/remove-servant
Remove servant dependency.
2019-06-24 05:28:27 -07:00
Rob Rix
474985c601
Merge branch 'master' into remove-servant 2019-06-24 05:16:13 -07:00
Rob Rix
c8fd375f23
Merge pull request #176 from devsnek/patch-1
Add `.mjs` as extension for JavaScript
2019-06-24 05:16:01 -07:00
Patrick Thomson
6dda3251e7 Remove servant dependency.
This has no place here; downstream consumers can link in servant, but
we don't have any need to.
2019-06-23 16:43:41 -04:00
Gus Caplan
c5dfb7f374
Add .mjs as extension for JavaScript 2019-06-22 19:53:43 -05:00
Josh Vera
3e5a00f9f5
Merge pull request #175 from github/update-php-assignment
Match `FormalParameter` symbol
2019-06-21 12:06:08 -04:00
Rob Rix
8cd44aa5fa
Merge branch 'master' into update-php-assignment 2019-06-21 09:59:15 -04:00
Rob Rix
bd5acca014
Merge pull request #170 from github/machines-to-streaming
Port from `machines` to `streaming`.
2019-06-21 09:57:16 -04:00
Rick Winfrey
4fdcef9822
Merge branch 'master' into update-php-assignment 2019-06-20 17:37:41 -07:00
Rick Winfrey
1d03fae11d Add PHP to supportedExts and codeNavLanguages 2019-06-20 17:30:10 -07:00
Rick Winfrey
f793346895 Match FormalParameter symbol 2019-06-20 11:42:37 -07:00
Patrick Thomson
dd8446c909 Drop the transformers dependency. 2019-06-20 14:13:54 -04:00
Patrick Thomson
b1a2b85d87 Merge remote-tracking branch 'origin/master' into machines-to-streaming 2019-06-20 14:09:39 -04:00
Rob Rix
6c311896f5
Merge pull request #171 from github/serialize-precise-ast-as-s-expressions
Serialize precise AST as s-expressions
2019-06-20 14:08:55 -04:00
Patrick Thomson
9f20899d85 Can't eliminate MTL yet, but we can minimize it. 2019-06-20 14:02:12 -04:00
Rob Rix
9bde466696
Merge branch 'master' into serialize-precise-ast-as-s-expressions 2019-06-20 13:58:50 -04:00
Patrick Thomson
c4c6b505ea
Merge pull request #169 from github/test-proto-symbols-cli-output
Add golden tests for `parse --proto-symbols` output.
2019-06-20 13:51:51 -04:00
Patrick Thomson
0564b9d36c Eliminate mtl dependency. 2019-06-20 13:50:50 -04:00
Patrick Thomson
a5a349ba23 Remove unused liftCons5 function. 2019-06-20 12:59:40 -04:00
Patrick Thomson
2cefe29fbc no partial type sigs necessary 2019-06-20 12:58:16 -04:00
Rob Rix
16d553167e
Revert "Add a little lambda calculus to toy with."
This reverts commit 50813fd5047ad648c9169d03f238687a56ffec3c.
2019-06-20 10:54:03 -04:00
Rob Rix
ccf8e1a7b9
Add a little lambda calculus to toy with. 2019-06-20 10:54:03 -04:00
Rob Rix
610acb7380
Indent/newline. 2019-06-20 10:54:03 -04:00
Rob Rix
1a1bfc3ca7
Generalize the Custom strategy over any Show-able type. 2019-06-20 10:54:03 -04:00
Rob Rix
bb54b3094d
Serialize field metadata. 2019-06-20 10:54:03 -04:00
Rob Rix
caeff71a33
Serialize fields. 2019-06-20 10:54:02 -04:00
Rob Rix
50b9298457
Serialize unit constructors. 2019-06-20 10:54:02 -04:00
Rob Rix
8e98f7eaed
Use advanced overlap to accommodate customizing for Text fields. 2019-06-20 10:54:02 -04:00
Rob Rix
b1d632fb2d
Serialize products. 2019-06-20 10:54:02 -04:00