Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: kenkangxgwe/lsp-wl
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.1.1
Choose a base ref
...
head repository: kenkangxgwe/lsp-wl
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Feb 5, 2019

  1. Copy the full SHA
    b69884c View commit details

Commits on Feb 7, 2019

  1. Copy the full SHA
    0c3c36e View commit details

Commits on Feb 11, 2019

  1. Add: interfaces for stdio, pipe and communication functions for `…

    …tcp-sever`
    
    * `tcp-server` is merely a socket server instead of a client in `socket`.
    * `stdio` is not able to implement since wolfram does not have stdio.
    * `pipe` is not able to implement since wolfram can read nothing from the given named pipe.
    kenkangxgwe committed Feb 11, 2019
    Copy the full SHA
    02db6f1 View commit details
  2. 🔨 put sendResponse into every message handler so that notification ma…

    …y send optional response back to client
    kenkangxgwe committed Feb 11, 2019
    Copy the full SHA
    bd9fc65 View commit details

Commits on Feb 12, 2019

  1. Copy the full SHA
    421de47 View commit details
  2. 🐛 fix bugs in didChange and completion

    * Previously the position is not refreshed if contentChanges does not contain range
    * In completion, newState -> state
    kenkangxgwe committed Feb 12, 2019
    Copy the full SHA
    5f9debc View commit details

Commits on Feb 17, 2019

  1. 🔨 boost startup speed

    * Use `SetDelayed` to fix `Set` in GetParentPid (actually it is not functioning)
    * `Pause` after each `Replace` in `waitForClient`
    kenkangxgwe committed Feb 17, 2019
    Copy the full SHA
    7ce3895 View commit details
  2. Copy the full SHA
    6de19ce View commit details
  3. Copy the full SHA
    bee6820 View commit details
  4. Copy the full SHA
    35f372d View commit details
  5. Copy the full SHA
    d35c2f0 View commit details
  6. 🔨⚗️ Use recursive structure instead of ReplaceAll

    * Temporarily reverse last commit (ignore the options of StyleBox) to see what will happen
    kenkangxgwe committed Feb 17, 2019
    Copy the full SHA
    bdfef81 View commit details
  7. Add: \[InvisibleSpace] rule

    * see TreePlot
    kenkangxgwe committed Feb 17, 2019
    Copy the full SHA
    c17cc70 View commit details

Commits on Mar 14, 2019

  1. Copy the full SHA
    ee5ff4b View commit details

Commits on May 15, 2019

  1. Copy the full SHA
    209bbe4 View commit details
  2. Copy the full SHA
    ec6a4a6 View commit details
  3. Copy the full SHA
    013be3b View commit details
  4. Copy the full SHA
    e778be7 View commit details
  5. Copy the full SHA
    e49d955 View commit details
  6. Copy the full SHA
    e4d8da1 View commit details

Commits on May 16, 2019

  1. Copy the full SHA
    3b41d3f View commit details
  2. Change: "Format" option for TokenDocumentation.

    * support "plaintext" and "markdown"
    kenkangxgwe committed May 16, 2019
    Copy the full SHA
    f7ffb5c View commit details

Commits on Jun 1, 2019

  1. ⚗️ temporarily convert all StyleBox w/o "TR" to plantext, ignoring th…

    …e second argument and after. Escape the tilde.
    kenkangxgwe committed Jun 1, 2019
    Copy the full SHA
    6ec7b6b View commit details
  2. Copy the full SHA
    c32dcd3 View commit details

Commits on Jun 2, 2019

  1. Copy the full SHA
    8ecdfa7 View commit details

Commits on Jun 8, 2019

  1. Copy the full SHA
    9a8d7fa View commit details
  2. Copy the full SHA
    6253463 View commit details
  3. Copy the full SHA
    d1ee30d View commit details
  4. 🔖 Alpha release 0.1.2

    kenkangxgwe committed Jun 8, 2019
    Copy the full SHA
    43ecb49 View commit details

Commits on Jun 11, 2019

  1. Copy the full SHA
    88205f6 View commit details
  2. Copy the full SHA
    35034c0 View commit details

Commits on Jun 24, 2019

  1. Copy the full SHA
    cd77d09 View commit details

Commits on Jun 30, 2019

  1. Squashed 'external/Matypetica/' content from commit 7fe0bb5

    git-subtree-dir: external/Matypetica
    git-subtree-split: 7fe0bb51bd22494df91550f846f1304454b22319
    kenkangxgwe committed Jun 30, 2019
    Copy the full SHA
    3366594 View commit details
  2. Copy the full SHA
    af7b046 View commit details
  3. Refine: the behavior of Replace and ReplaceBy when it comes to missin…

    …g keys.
    
    * If a key specified by the rule is not a valid key of a type, it will be ignored and the object is not changed.
    * If a key specified by the rule is a valid key of a type but missing in the variable, or a key is missing in a plain association,
        * if it has following keys, it will be ignored and the object or association is not changed.
        * if it is the last key, it will be added to the object or association.
    * If an index specified by the rule is out of the index range of the list, it will be ignored and the list is not changed.
    kenkangxgwe committed Jun 30, 2019
    Copy the full SHA
    bb4a793 View commit details
  4. Copy the full SHA
    b5b9940 View commit details
  5. Copy the full SHA
    fceafc5 View commit details
  6. Squashed 'external/Matypetica/' changes from 7fe0bb5..076e70c

    076e70c Refine: the behavior of Replace and ReplaceBy when it comes to missing keys.
    
    git-subtree-dir: external/Matypetica
    git-subtree-split: 076e70cc825eadf3365d0f3e0c636598adbb3ce2
    kenkangxgwe committed Jun 30, 2019
    Copy the full SHA
    cacb9d8 View commit details
  7. Copy the full SHA
    5b0ec44 View commit details
  8. Copy the full SHA
    2c36473 View commit details
  9. Archive: GenSvgImg function from Token.wl.

    (cherry picked from commit d5e411ac1cbc5ddbe222c3579c136c1162f96ae2)
    kenkangxgwe committed Jun 30, 2019
    Copy the full SHA
    066f3e3 View commit details

Commits on Jul 14, 2019

  1. Clean: svg related code

    kenkangxgwe committed Jul 14, 2019
    Copy the full SHA
    31fc9b6 View commit details
  2. Clean: loggings

    kenkangxgwe committed Jul 14, 2019
    Copy the full SHA
    f7adb9f View commit details

Commits on Jul 15, 2019

  1. Copy the full SHA
    224d484 View commit details

Commits on Jul 17, 2019

  1. Copy the full SHA
    5bb09a4 View commit details

Commits on Jul 20, 2019

  1. ✨ add scheduleTasks to the server, so it can do tasks in spare time.

    * This tries to fix the high CPU usage in Unix when waiting for messages via socket.
    * Postpone the diagnostics after a series of didChange operations.
    kenkangxgwe committed Jul 20, 2019
    Copy the full SHA
    f93fb88 View commit details

Commits on Jul 22, 2019

  1. Add: DeleteKey Function

    kenkangxgwe committed Jul 22, 2019
    Copy the full SHA
    e9e2b29 View commit details

Commits on Jul 23, 2019

  1. Copy the full SHA
    00ca2fd View commit details
  2. 🔨 change the structure of the "text" in DocumentText from String for …

    …the entire document to String list for lines.
    kenkangxgwe committed Jul 23, 2019
    Copy the full SHA
    b827042 View commit details
  3. Add: Table generator and unicode table that stores aliases and long n…

    …ames for unicode characters
    kenkangxgwe committed Jul 23, 2019
    Copy the full SHA
    c7dbf40 View commit details
Showing with 9,692 additions and 7,329 deletions.
  1. +47 −0 .github/workflows/workflow.yml
  2. +101 −1 CHANGELOG.md
  3. +1 −1 LICENSE
  4. +205 −76 README.md
  5. +0 −199 WolframLanguageServer/DataType.wl
  6. +0 −859 WolframLanguageServer/Server.wl
  7. +0 −300 WolframLanguageServer/Specification.wl
  8. +0 −51 WolframLanguageServer/Test/RunTest.wl
  9. +0 −94 WolframLanguageServer/Test/TextDocumentTest.wl
  10. +0 −172 WolframLanguageServer/Token.wl
  11. +0 −32 client/.vscode/launch.json
  12. +0 −10 client/.vscode/settings.json
  13. +0 −27 client/.vscode/tasks.json
  14. +0 −12 client/.vscodeignore
  15. +0 −33 client/CHANGELOG.md
  16. +0 −99 client/README.md
  17. BIN client/images/logo.png
  18. +0 −4,930 client/package-lock.json
  19. +0 −118 client/package.json
  20. +0 −47 client/src/extension.ts
  21. +0 −44 client/src/test/completion.test.ts
  22. +0 −42 client/src/test/diagnostics.test.ts
  23. +0 −48 client/src/test/helper.ts
  24. +0 −15 client/src/test/index.ts
  25. 0 client/testFixture/completion.txt
  26. +0 −1 client/testFixture/diagnostics.txt
  27. +0 −17 client/tsconfig.json
  28. +21 −0 external/Matypetica/LICENSE
  29. +139 −0 external/Matypetica/README.md
  30. +360 −0 external/Matypetica/src/DataType.wl
  31. +85 −20 {WolframLanguageServer/Test → external/Matypetica/test}/DataTypeTest.wl
  32. BIN images/codeActionSymbolDocumentation.png
  33. BIN images/completion.png
  34. BIN images/completion_alias.png
  35. BIN images/diagnostics.png
  36. BIN images/documentColor.png
  37. BIN images/documentSymbol.png
  38. BIN images/evaluate_code_action.png
  39. BIN images/evaluate_debug_console.png
  40. BIN images/hover.png
  41. BIN images/references.png
  42. BIN images/variables.png
  43. +133 −76 init.wls
  44. +116 −0 src/PatternTemplate.wl
  45. +120 −0 src/WolframLanguageServer/Adaptor.wl
  46. +51 −0 src/WolframLanguageServer/Archives.wl
  47. +244 −0 src/WolframLanguageServer/AstPatterns.wl
  48. +32 −0 src/WolframLanguageServer/ColorTable.wl
  49. +339 −0 src/WolframLanguageServer/Debugger.wl
  50. +10 −5 { → src}/WolframLanguageServer/Logger.wl
  51. +2,622 −0 src/WolframLanguageServer/Server.wl
  52. +456 −0 src/WolframLanguageServer/Specification.wl
  53. +120 −0 src/WolframLanguageServer/TableGenerator.wl
  54. +1,546 −0 src/WolframLanguageServer/TextDocument.wl
  55. +663 −0 src/WolframLanguageServer/Token.wl
  56. +1,278 −0 src/WolframLanguageServer/UnicodeTable.wl
  57. +115 −0 test/PatternTemplateTest.wl
  58. +72 −0 test/RunTest.wl
  59. +692 −0 test/WolframLanguageServer/TextDocumentTest.wl
  60. +124 −0 test/WolframLanguageServer/TokenTest.wl
47 changes: 47 additions & 0 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# This is a basic workflow to help you get started with Actions

name: CI

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches:
- master
- develop
pull_request:
branches:
- master
- develop

env:
WOLFRAM_ID: ${{ secrets.WOLFRAM_ID }}
WOLFRAM_PW: ${{ secrets.WOLFRAM_PW }}

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
name: "Run lsp-wl tests"
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2

- name: Install Wolfram Engine
run: |
wget https://account.wolfram.com/download/public/wolfram-engine/desktop/LINUX
sudo bash LINUX -- -auto -verbose
rm LINUX
- name: Activate Wolfram Engine
run: |
/usr/bin/wolframscript -authenticate $WOLFRAM_ID $WOLFRAM_PW
/usr/bin/wolframscript -activate
- name: Install Paclets
run: |
/usr/bin/wolframscript -code 'PacletInstall["CodeParser"];PacletInstall["CodeInspector"];Exit[]'
- name: Run Tests
run: |
/usr/bin/wolframscript -file init.wls --test
102 changes: 101 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -4,7 +4,107 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.1] - 2019-02-05 🧧
## [0.3.0] - 2021-01-26 🧨🐂

### Added

- Support for debugger adapter. Code can be evaluated and symbols can be
shown in the editor.

- CodeAction to show Documentation for system symbols (Thanks @wuyudi for
the help with testing)

## [0.2.2] - 2020-08-01 🐱‍🏍

### Added

- SignatureHelp is available for functions when `[` and `,` is input.

### Changed

- Change the dependencies from `AST` and `Lint` to `CodeParser` and
`CodeInspector`.
- The alias completion has been improved by reducing the number of
`completionItem`s, and returning `\`-prefixed aliases when triggered twice.

### Fixed

- `triggerCharacters` should be a list (thanks to
[@dalanicolai](https://github.com/dalanicolai)).
- The `duplicate requests`
error will not popup in Output window in VSCode (reported by
[@GiovanniBordiga](https://github.com/GiovanniBordiga)).
- MessageName should be shown when hovered

## [0.2.1] - 2020-01-24 🏮🐀

### Added

- Definition / References are available to show in scopes / the whole file.
- DocumentHighlight is available to show the scoped variables.
- DocumentColor / ColorRepresentation are available to show the color names and models.

### Changed

- The Top-level function / list declaration is visible in documentSymbol.
- Attributes and Option are showed in hover messages.
- Operators will also trigger the hover messages.

### Fixed

- Mathematica before version 11.3 are correctly using the StringRepeat.

### Known issues

- The hovering could be triggered, when cursor is in side a parent syntax
node even it is not on the operator/function head. Not sure about the UX.
- Color-related requests are slowed down intentionally, since it is in low
use frequency comparing to messages like didChange and completion.
- Even if some requests are prioritized to improve the experience, sometimes
responds could still be slower if the document is changing too frequent.

## [0.2.0] - 2019-07-23 🏖️

### Added

- The document structure is provided in DocumentSymbol. (Thanks to Brenton's `AST` package)
- Hovering for `MessageName` and numeral literals.
- Completion for both aliases and long names of the Unicode characters (with leader key <kbd>\\</kbd>).
- Auto check for upgrades and dependencies.

### Changed

- Using Brenton's `Lint` package to diagnose the document.
- Documentations now have a better format with code block (in hovers and completions).
- Diagnostics are published schedulely.

### Fixed

- High CPU usage when reading message via sockets under Linux.
(Reported by [@kc9jud](https://github.com/kc9jud) and solution suggested by
[@megatron0000](https://github.com/megatron0000))

### Known Issues

- Some of the documentations are not transcribed correctly into Markdown format, see issues.

## [0.1.2] - 2019-05-15

### Added

- Named pipe support for Windows

### Fixed

- Avoid early evaluation that slow down the initialization

- Markdown conversion for special characters

### Removed

- SVG image for document information

## [0.1.1] - 2019-02-05 🧧🐖

### Added

2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2019 lsp-wl
Copyright (c) 2018 lsp-wl

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Loading