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: joelday/papyrus-lang
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.1.0-prerelease.1
Choose a base ref
...
head repository: joelday/papyrus-lang
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: prerelease
Choose a head ref

Commits on Jan 2, 2023

  1. Remove safety prerelease flags. Use debugger beta in non-ci builds. F…

    …ix npm cache path hopefully?
    joelday committed Jan 2, 2023
    Copy the full SHA
    fd79eff View commit details
  2. Copy the full SHA
    ef71afc View commit details
  3. Copy the full SHA
    e9073a8 View commit details

Commits on Jan 4, 2023

  1. Copy the full SHA
    7fdccea View commit details

Commits on Jan 14, 2023

  1. Copy the full SHA
    1801837 View commit details
  2. Copy the full SHA
    236d7a8 View commit details
  3. Copy the full SHA
    60ff015 View commit details
  4. chore: Replace decoration-ioc with inversify (actually maintained and…

    … not broken)
    
    docs: Add notes about updated debugger, Address Library requirements.
    joelday committed Jan 14, 2023
    Copy the full SHA
    1d64045 View commit details

Commits on Jan 16, 2023

  1. chore: enable strict mode in tsconfig.json and fix resulting compile-…

    …time null/undefined and typing errors.
    
    chore: Improvements to eventToValueObservable handling and typing of undefined.
    
    chore: Removing ancient legacy debug plugin upgrade check.
    
    fix: Ensure that language service status items are updated properly.
    
    feat: Updated welcome message with debugger upgrade info.
    
    fix: Various potential extension errors/crashes in rare circumstances. (Empty config values, etc.)
    
    feat: Update display name for Skyrim to include AE.
    joelday committed Jan 16, 2023
    2
    Copy the full SHA
    40c647c View commit details
  2. chore: Add CI build version to debugger dlls.

    chore: Use Release build configuration for CI builds.
    joelday committed Jan 16, 2023
    Copy the full SHA
    3413c2e View commit details
  3. Fix typo

    nikitalita authored Jan 16, 2023
    Copy the full SHA
    f0b0052 View commit details
  4. Preview release preparation (#168)

    chore: enable strict mode in tsconfig.json and fix resulting
    compile-time null/undefined and typing errors.
    chore: Improvements to eventToValueObservable handling and typing of
    undefined.
    chore: Removing ancient legacy debug plugin upgrade check.
    fix: Ensure that language service status items are updated properly.
    feat: Updated welcome message with debugger upgrade info.
    fix: Various potential extension errors/crashes in rare circumstances.
    (Empty config values, etc.)
    feat: Update display name for Skyrim to include AE.
    chore: Replace decoration-ioc with inversify (actually maintained and
    not broken)
    docs: Add notes about updated debugger, Address Library requirements.
    chore: Add CI build version to debugger dlls.
    chore: Use Release build configuration for CI builds.
    joelday authored Jan 16, 2023
    Copy the full SHA
    bd8cdf1 View commit details
  5. chore: new prerelease (#169)

    joelday authored Jan 16, 2023
    Copy the full SHA
    d8b3ef4 View commit details
  6. chore(release): 3.1.0-prerelease.2 [skip ci]

    # [3.1.0-prerelease.2](v3.1.0-prerelease.1...v3.1.0-prerelease.2) (2023-01-16)
    
    ### Bug Fixes
    
    * Prerelease versioning scheme produced invalid semvers. ([1801837](1801837))
    * Prerelease versioning scheme produced invalid semvers. ([#167](#167)) ([236d7a8](236d7a8))
    semantic-release-bot committed Jan 16, 2023
    Copy the full SHA
    36bb28e View commit details

Commits on Jan 27, 2023

  1. Update index.md

    joelday authored Jan 27, 2023
    Copy the full SHA
    84d4399 View commit details
  2. Update index.md

    Switching to GitHub link.
    joelday authored Jan 27, 2023
    Copy the full SHA
    f130022 View commit details
  3. Update index.md (#171)

    Oops.
    nikitalita authored Jan 27, 2023
    Copy the full SHA
    440a228 View commit details

Commits on Feb 4, 2023

  1. Merge for release. (#172)

    joelday authored Feb 4, 2023
    Copy the full SHA
    1dbaadf View commit details

Commits on Feb 5, 2023

  1. chore(release): 3.1.0 [skip ci]

    # [3.1.0](v3.0.1...v3.1.0) (2023-02-05)
    
    ### Bug Fixes
    
    * Prerelease versioning scheme produced invalid semvers. ([1801837](1801837))
    * Prerelease versioning scheme produced invalid semvers. ([#167](#167)) ([236d7a8](236d7a8))
    
    ### Features
    
    * test ([9b75be0](9b75be0))
    semantic-release-bot committed Feb 5, 2023
    Copy the full SHA
    6cf65d4 View commit details
  2. Copy the full SHA
    ebf7b64 View commit details
  3. chore(release): 3.1.1 [skip ci]

    ## [3.1.1](v3.1.0...v3.1.1) (2023-02-05)
    
    ### Bug Fixes
    
    * Publishing failure due to bad environment variable. ([ebf7b64](ebf7b64))
    semantic-release-bot committed Feb 5, 2023
    Copy the full SHA
    49e8ad1 View commit details

Commits on Feb 12, 2023

  1. Copy the full SHA
    d390277 View commit details
  2. Copy the full SHA
    7c16d64 View commit details
  3. refactor PapryusDebugger to persist across sessions

    This way we don't have to repopulate the PEX cache between sessions
    nikitalita committed Feb 12, 2023
    Copy the full SHA
    487bd1c View commit details
  4. Copy the full SHA
    7e563eb View commit details
  5. DebugServer: fix compile

    nikitalita committed Feb 12, 2023
    Copy the full SHA
    6fdf4ae View commit details
  6. reset adapter output path

    nikitalita committed Feb 12, 2023
    Copy the full SHA
    3362b7c View commit details
  7. Copy the full SHA
    f1c1316 View commit details
  8. Copy the full SHA
    0e6e311 View commit details
  9. Copy the full SHA
    be0bbfe View commit details

Commits on Feb 20, 2023

  1. Add Backslash Escape Syntax Highlighting

    Still working on keeping function parameters from turning red...
    BellCubeDev committed Feb 20, 2023
    Copy the full SHA
    06cfb6b View commit details
  2. Copy the full SHA
    b6c7195 View commit details

Commits on Mar 15, 2023

  1. feat: Support Multi-Line and String Escapes (#175)

    The Papyrus compiler supports escaping in, as far as I know, three
    contexts:
    
    * Within a string. The following are valid:
      | Escape | Resulting Character |
      | :-: | :-: |
      | `\n` | New Line |
      | `\t` | Tab Character |
      | `\"` | `"` |
      | `\\` | `\` |
    * At the end of a line. For example:
      ```papyrus
      event onInit()
          Game.GetPlayer() \
              .Kill()
      endEvent
      ```
    * Within parameter lists. *While this falls into the previous by
    definition, the syntax highlighting method does not.*
      Example:
      ```papyrus
      function testingFunction(\
          , Form akForm1, Location akLoc1, Form akForm2, \
            Form akForm3, Location akLoc2, Form akForm4 \
          , Form akForm5, Location akLoc3, Form akForm6 \
          , Form akForm7, Location akLoc4, Form akForm8 \
      )
      endFunction
      ```
    
    This pull request addresses all three of these cases within the Papyrus
    grammar.
    nikitalita authored Mar 15, 2023
    Copy the full SHA
    13fe286 View commit details
  2. chore(release): 3.2.0 [skip ci]

    # [3.2.0](v3.1.1...v3.2.0) (2023-03-15)
    
    ### Features
    
    * Support Multi-Line and String Escapes ([#175](#175)) ([13fe286](13fe286))
    semantic-release-bot committed Mar 15, 2023
    Copy the full SHA
    ad6a206 View commit details

Commits on Sep 1, 2023

  1. Copy the full SHA
    dd0c240 View commit details
  2. Copy the full SHA
    c995630 View commit details
  3. fix bugs in debugger

    nikitalita committed Sep 1, 2023
    Copy the full SHA
    d61f204 View commit details
  4. debugger cleanup

    nikitalita committed Sep 1, 2023
    Copy the full SHA
    04905ea View commit details
  5. Copy the full SHA
    3c00915 View commit details
  6. Copy the full SHA
    65fce0d View commit details
  7. update config hooks

    nikitalita committed Sep 1, 2023
    Copy the full SHA
    48e1e03 View commit details
  8. Copy the full SHA
    0ce2ead View commit details
  9. improve logging

    nikitalita committed Sep 1, 2023
    Copy the full SHA
    274a163 View commit details
  10. Copy the full SHA
    86b2e1b View commit details
  11. Fix skyrim IP not being assigned per op

    modified hook to make the IP correct
    nikitalita committed Sep 1, 2023
    Copy the full SHA
    941da56 View commit details
  12. Copy the full SHA
    6b91b4b View commit details
  13. Copy the full SHA
    f21d9e8 View commit details
  14. fix vcpkg-configuration

    nikitalita committed Sep 1, 2023
    Copy the full SHA
    e122ebd View commit details

Commits on Sep 5, 2023

  1. DebugServer: Switch DAP library to cppdap (#174)

    `cppdap` is a more consistently updated, modern library than the old
    Samsung one we were using. With this, we can take advantage of newer
    features in the protocol, like function breakpoints.
    
    I have not yet removed `DebugAdapterProxy`, as we need to switch to pyro
    for the single source of truth for the project so we can fix path
    resolution, but I have added the logic to manage the project paths and
    the relevant fields to the `attach` request that we process (see
    src/DarkId.Papyrus.DebugServer/Protocol/struct_extensions.h )
    joelday authored Sep 5, 2023
    Copy the full SHA
    e91902e View commit details

Commits on Sep 30, 2023

  1. Extension: add eslint and fix errors

    TURMEL Kevin committed Sep 30, 2023
    Copy the full SHA
    7685f51 View commit details
Showing with 37,045 additions and 6,621 deletions.
  1. +2 −0 .gitattributes
  2. +59 −17 .github/workflows/build.yml
  3. +3 −0 .gitignore
  4. +64 −0 .vscode/c_cpp_properties.json
  5. +3 −2 .vscode/settings.json
  6. +2 −128 CONTRIBUTING.md
  7. +37 −0 DarkId.Papyrus.DebugServer.sln
  8. +1 −0 README.md
  9. +113 −53 build.cake
  10. +38 −0 dependencies/MetaStuff/.gitignore
  11. +21 −0 dependencies/MetaStuff/LICENSE
  12. +198 −0 dependencies/MetaStuff/README.md
  13. +70 −0 dependencies/MetaStuff/example/JsonCast.h
  14. +138 −0 dependencies/MetaStuff/example/JsonCast.inl
  15. +23 −0 dependencies/MetaStuff/example/MovieInfo.h
  16. +64 −0 dependencies/MetaStuff/example/Person.h
  17. +51 −0 dependencies/MetaStuff/example/StringCast.cpp
  18. +43 −0 dependencies/MetaStuff/example/StringCast.h
  19. +101 −0 dependencies/MetaStuff/example/main.cpp
  20. +14,533 −0 dependencies/MetaStuff/example/nlohmann_json/json.hpp
  21. +114 −0 dependencies/MetaStuff/include/Member.h
  22. +177 −0 dependencies/MetaStuff/include/Member.inl
  23. +129 −0 dependencies/MetaStuff/include/Meta.h
  24. +132 −0 dependencies/MetaStuff/include/Meta.inl
  25. +31 −0 dependencies/MetaStuff/include/detail/MetaHolder.h
  26. +39 −0 dependencies/MetaStuff/include/detail/template_helpers.h
  27. +77 −0 dependencies/MetaStuff/include/detail/template_helpers.inl
  28. +31 −0 dependencies/ports/Champollion/portfile.cmake
  29. +27 −0 dependencies/ports/Champollion/vcpkg.json
  30. +54 −0 dependencies/ports/commonlibf4/portfile.cmake
  31. +19 −0 dependencies/ports/commonlibf4/vcpkg.json
  32. +32 −0 dependencies/ports/commonlibsse-ng/portfile.cmake
  33. +20 −0 dependencies/ports/commonlibsse-ng/vcpkg.json
  34. +33 −0 dependencies/ports/cppdap/portfile.cmake
  35. +35 −0 dependencies/ports/cppdap/vcpkg.json
  36. +3 −2 src/DarkId.Papyrus.Common/DarkId.Papyrus.Common.csproj
  37. +7 −4 src/DarkId.Papyrus.DebugAdapterProxy/DarkId.Papyrus.DebugAdapterProxy.Fallout4.csproj
  38. +8 −5 src/DarkId.Papyrus.DebugAdapterProxy/DarkId.Papyrus.DebugAdapterProxy.Skyrim.csproj
  39. +30 −10 src/DarkId.Papyrus.DebugAdapterProxy/Program.cs
  40. +144 −0 src/DarkId.Papyrus.DebugServer/ArrayStateNode.cpp
  41. +28 −0 src/DarkId.Papyrus.DebugServer/ArrayStateNode.h
  42. +215 −0 src/DarkId.Papyrus.DebugServer/BreakpointManager.cpp
  43. +47 −0 src/DarkId.Papyrus.DebugServer/BreakpointManager.h
  44. +168 −0 src/DarkId.Papyrus.DebugServer/ConfigHooks.h
  45. +275 −0 src/DarkId.Papyrus.DebugServer/DarkId.Papyrus.DebugServer.Fallout4.vcxproj
  46. +135 −0 src/DarkId.Papyrus.DebugServer/DarkId.Papyrus.DebugServer.Fallout4.vcxproj.filters
  47. +304 −0 src/DarkId.Papyrus.DebugServer/DarkId.Papyrus.DebugServer.Skyrim.vcxproj
  48. +137 −0 src/DarkId.Papyrus.DebugServer/DarkId.Papyrus.DebugServer.Skyrim.vcxproj.filters
  49. +173 −0 src/DarkId.Papyrus.DebugServer/DebugExecutionManager.cpp
  50. +57 −0 src/DarkId.Papyrus.DebugServer/DebugExecutionManager.h
  51. +61 −0 src/DarkId.Papyrus.DebugServer/DebugServer.cpp
  52. +23 −0 src/DarkId.Papyrus.DebugServer/DebugServer.h
  53. +361 −0 src/DarkId.Papyrus.DebugServer/FormMetadata.h
  54. +1 −0 src/DarkId.Papyrus.DebugServer/FormTypeMacros.cpp
  55. +317 −0 src/DarkId.Papyrus.DebugServer/FormTypeMacros.h
  56. +1 −0 src/DarkId.Papyrus.DebugServer/GameInterfaces.cpp
  57. +2 −0 src/DarkId.Papyrus.DebugServer/GameInterfaces.h
  58. +1 −0 src/DarkId.Papyrus.DebugServer/IdHandleBase.cpp
  59. +29 −0 src/DarkId.Papyrus.DebugServer/IdHandleBase.h
  60. +1 −0 src/DarkId.Papyrus.DebugServer/IdMap.cpp
  61. +109 −0 src/DarkId.Papyrus.DebugServer/IdMap.h
  62. +10 −0 src/DarkId.Papyrus.DebugServer/IdProvider.cpp
  63. +13 −0 src/DarkId.Papyrus.DebugServer/IdProvider.h
  64. +84 −0 src/DarkId.Papyrus.DebugServer/LocalScopeStateNode.cpp
  65. +21 −0 src/DarkId.Papyrus.DebugServer/LocalScopeStateNode.h
  66. +1 −0 src/DarkId.Papyrus.DebugServer/MetaNode.cpp
  67. +190 −0 src/DarkId.Papyrus.DebugServer/MetaNode.h
  68. +188 −0 src/DarkId.Papyrus.DebugServer/ObjectStateNode.cpp
  69. +26 −0 src/DarkId.Papyrus.DebugServer/ObjectStateNode.h
  70. +602 −0 src/DarkId.Papyrus.DebugServer/PapyrusDebugger.cpp
  71. +109 −0 src/DarkId.Papyrus.DebugServer/PapyrusDebugger.h
  72. +136 −0 src/DarkId.Papyrus.DebugServer/Pex.cpp
  73. +12 −0 src/DarkId.Papyrus.DebugServer/Pex.h
  74. +91 −0 src/DarkId.Papyrus.DebugServer/PexCache.cpp
  75. +30 −0 src/DarkId.Papyrus.DebugServer/PexCache.h
  76. +77 −0 src/DarkId.Papyrus.DebugServer/Protocol/debugger.h
  77. +26 −0 src/DarkId.Papyrus.DebugServer/Protocol/struct_extensions.cpp
  78. +39 −0 src/DarkId.Papyrus.DebugServer/Protocol/struct_extensions.h
  79. +17 −0 src/DarkId.Papyrus.DebugServer/Protocol/websocket_impl.h
  80. +77 −0 src/DarkId.Papyrus.DebugServer/Protocol/websocket_reader_writer.cpp
  81. +33 −0 src/DarkId.Papyrus.DebugServer/Protocol/websocket_reader_writer.h
  82. +125 −0 src/DarkId.Papyrus.DebugServer/Protocol/websocket_server.cpp
  83. +52 −0 src/DarkId.Papyrus.DebugServer/Protocol/websocket_server.h
  84. +39 −0 src/DarkId.Papyrus.DebugServer/README.md
  85. +704 −0 src/DarkId.Papyrus.DebugServer/RuntimeEvents.cpp
  86. +37 −0 src/DarkId.Papyrus.DebugServer/RuntimeEvents.h
  87. +282 −0 src/DarkId.Papyrus.DebugServer/RuntimeState.cpp
  88. +33 −0 src/DarkId.Papyrus.DebugServer/RuntimeState.h
  89. +64 −0 src/DarkId.Papyrus.DebugServer/StackFrameStateNode.cpp
  90. +23 −0 src/DarkId.Papyrus.DebugServer/StackFrameStateNode.h
  91. +72 −0 src/DarkId.Papyrus.DebugServer/StackStateNode.cpp
  92. +22 −0 src/DarkId.Papyrus.DebugServer/StackStateNode.h
  93. +14 −0 src/DarkId.Papyrus.DebugServer/StateNodeBase.cpp
  94. +40 −0 src/DarkId.Papyrus.DebugServer/StateNodeBase.h
  95. +59 −0 src/DarkId.Papyrus.DebugServer/StructStateNode.cpp
  96. +25 −0 src/DarkId.Papyrus.DebugServer/StructStateNode.h
  97. +180 −0 src/DarkId.Papyrus.DebugServer/Utilities.h
  98. +49 −0 src/DarkId.Papyrus.DebugServer/ValueStateNode.cpp
  99. +19 −0 src/DarkId.Papyrus.DebugServer/ValueStateNode.h
  100. +73 −0 src/DarkId.Papyrus.DebugServer/Window.cpp
  101. +8 −0 src/DarkId.Papyrus.DebugServer/Window.h
  102. +177 −0 src/DarkId.Papyrus.DebugServer/main.cpp
  103. +1 −0 src/DarkId.Papyrus.DebugServer/pdsPCH.cpp
  104. +66 −0 src/DarkId.Papyrus.DebugServer/pdsPCH.h
  105. +32 −0 src/DarkId.Papyrus.DebugServer/version.h
  106. +43 −0 src/DarkId.Papyrus.DebugServer/version.rc
  107. +2 −1 src/DarkId.Papyrus.Host/DarkId.Papyrus.Host.Fallout4.csproj
  108. +2 −1 src/DarkId.Papyrus.Host/DarkId.Papyrus.Host.Skyrim.csproj
  109. +4 −0 src/DarkId.Papyrus.Host/Program.cs
  110. +2 −1 src/DarkId.Papyrus.LanguageService/DarkId.Papyrus.LanguageService.Fallout4.csproj
  111. +2 −1 src/DarkId.Papyrus.LanguageService/DarkId.Papyrus.LanguageService.Skyrim.csproj
  112. +266 −1 src/DarkId.Papyrus.LanguageService/Program/ProgramOptions.cs
  113. +6 −0 src/DarkId.Papyrus.LanguageService/Program/ProgramOptionsBuilder.cs
  114. +16 −5 src/DarkId.Papyrus.LanguageService/Projects/ProgramExtensions.cs
  115. +1 −1 src/DarkId.Papyrus.Server/DarkId.Papyrus.Server.Fallout4.csproj
  116. +5 −3 src/DarkId.Papyrus.Server/DarkId.Papyrus.Server.Skyrim.csproj
  117. +2 −3 src/DarkId.Papyrus.Server/Features/ProjectInfosHandler.cs
  118. +3 −1 src/DarkId.Papyrus.Server/PapyrusLanguageServer.cs
  119. +1 −0 src/DarkId.Papyrus.Server/PapyrusLanguageServerOptions.cs
  120. +12 −0 src/DarkId.Papyrus.Server/ProjectHost.cs
  121. +4 −1 src/DarkId.Papyrus.Server/ProjectProgramOptionsProvider.cs
  122. +1 −0 src/DarkId.Papyrus.Server/Protocol/IProjectInfosHandler.cs
  123. +2 −1 src/DarkId.Papyrus.Test/DarkId.Papyrus.Test.Fallout4.csproj
  124. +7 −1 src/DarkId.Papyrus.Test/DarkId.Papyrus.Test.Skyrim.csproj
  125. +3 −0 src/DarkId.Papyrus.Test/LanguageService/Program/ProgramTestBase.cs
  126. +177 −32 src/DarkId.Papyrus.Test/LanguageService/Program/ProgramUtilitiesTests.cs
  127. +4 −4 src/DarkId.Papyrus.Test/LanguageService/Program/TestHarness/ProgramTestHarness.cs
  128. +42 −0 ...pyrus.Test/remotes/5738ebf4/fireundubh/skyui/dist/Data/Scripts/Source/SKI_ActiveEffectsWidget.psc
  129. +180 −0 ...DarkId.Papyrus.Test/remotes/5738ebf4/fireundubh/skyui/dist/Data/Scripts/Source/SKI_ConfigBase.psc
  130. +64 −0 ...kId.Papyrus.Test/remotes/5738ebf4/fireundubh/skyui/dist/Data/Scripts/Source/SKI_ConfigManager.psc
  131. +478 −0 ...DarkId.Papyrus.Test/remotes/5738ebf4/fireundubh/skyui/dist/Data/Scripts/Source/SKI_ConfigMenu.psc
  132. +118 −0 ....Papyrus.Test/remotes/5738ebf4/fireundubh/skyui/dist/Data/Scripts/Source/SKI_FavoritesManager.psc
  133. +84 −0 src/DarkId.Papyrus.Test/remotes/5738ebf4/fireundubh/skyui/dist/Data/Scripts/Source/SKI_Main.psc
  134. +4 −0 ...pyrus.Test/remotes/5738ebf4/fireundubh/skyui/dist/Data/Scripts/Source/SKI_PlayerLoadGameAlias.psc
  135. +5 −0 ....Test/remotes/5738ebf4/fireundubh/skyui/dist/Data/Scripts/Source/SKI_QF_ConfigManagerInstance.psc
  136. +15 −0 src/DarkId.Papyrus.Test/remotes/5738ebf4/fireundubh/skyui/dist/Data/Scripts/Source/SKI_QuestBase.psc
  137. +27 −0 ...d.Papyrus.Test/remotes/5738ebf4/fireundubh/skyui/dist/Data/Scripts/Source/SKI_SettingsManager.psc
  138. +95 −0 ...DarkId.Papyrus.Test/remotes/5738ebf4/fireundubh/skyui/dist/Data/Scripts/Source/SKI_WidgetBase.psc
  139. +25 −0 ...kId.Papyrus.Test/remotes/5738ebf4/fireundubh/skyui/dist/Data/Scripts/Source/SKI_WidgetManager.psc
  140. +51 −0 src/DarkId.Papyrus.Test/scripts/Imports.json
  141. 0 src/DarkId.Papyrus.Test/scripts/Imports/TestSource1/Script1.psc
  142. 0 src/DarkId.Papyrus.Test/scripts/Imports/TestSource2/scripts/Script2.psc
  143. 0 src/DarkId.Papyrus.Test/scripts/Imports/TestSource3/source/Script3.psc
  144. 0 src/DarkId.Papyrus.Test/scripts/Imports/TestSource4/scripts/source/Script4.psc
  145. +60 −0 src/DarkId.Papyrus.Test/scripts/RemoteAddresses.json
  146. +15 −0 src/DarkId.Papyrus.Test/scripts/Skyrim/Skyrim_3.ppj
  147. +2 −0 src/papyrus-lang-vscode/.eslintignore
  148. +19 −0 src/papyrus-lang-vscode/.eslintrc.js
  149. +6 −7 src/papyrus-lang-vscode/.releaserc
  150. +0 −467 src/papyrus-lang-vscode/CHANGELOG.md
  151. +11,014 −5,364 src/papyrus-lang-vscode/package-lock.json
  152. +29 −18 src/papyrus-lang-vscode/package.json
  153. +47 −0 src/papyrus-lang-vscode/resources/icons8-folder.svg
  154. +1 −0 src/papyrus-lang-vscode/resources/icons8-git.svg
  155. +2 −2 src/papyrus-lang-vscode/resources/sse/launch.json
  156. +35 −13 src/papyrus-lang-vscode/resources/welcome/index.md
  157. +24 −0 src/papyrus-lang-vscode/scripts/generate-version-number.mjs
  158. +0 −42 src/papyrus-lang-vscode/scripts/generate-version-number.ts
  159. +17 −14 src/papyrus-lang-vscode/src/CreationKitInfoProvider.ts
  160. +6 −4 src/papyrus-lang-vscode/src/ExtensionConfigProvider.ts
  161. +27 −34 src/papyrus-lang-vscode/src/PapyrusExtension.ts
  162. +28 −15 src/papyrus-lang-vscode/src/PapyrusGame.ts
  163. +39 −19 src/papyrus-lang-vscode/src/Utilities.ts
  164. +0 −8 src/papyrus-lang-vscode/src/common/Ioc.ts
  165. +48 −38 src/papyrus-lang-vscode/src/common/PathResolver.ts
  166. +4 −4 src/papyrus-lang-vscode/src/common/Reactive.ts
  167. +2 −2 src/papyrus-lang-vscode/src/common/constants.ts
  168. +2 −2 src/papyrus-lang-vscode/src/common/vscode/IocDecorators.ts
  169. +4 −1 src/papyrus-lang-vscode/src/common/vscode/commands/CommandBase.ts
  170. +4 −1 src/papyrus-lang-vscode/src/common/vscode/commands/EditorCommandBase.ts
  171. +7 −3 src/papyrus-lang-vscode/src/common/vscode/editor/EditorAttacherBase.ts
  172. +1 −1 src/papyrus-lang-vscode/src/common/vscode/editor/EditorAttachmentBase.ts
  173. +31 −4 src/papyrus-lang-vscode/src/common/vscode/reactive/Events.ts
  174. +2 −0 src/papyrus-lang-vscode/src/common/vscode/view/ActiveDocTreeDataProviderBase.ts
  175. +1 −1 src/papyrus-lang-vscode/src/common/vscode/view/TreeDataNode.ts
  176. +6 −7 src/papyrus-lang-vscode/src/common/vscode/view/TreeDataProviderBase.ts
  177. +1 −0 src/papyrus-lang-vscode/src/common/vscode/view/TreeViewControllerBase.ts
  178. +14 −19 src/papyrus-lang-vscode/src/debugger/DebugSupportInstallService.ts
  179. +23 −16 src/papyrus-lang-vscode/src/debugger/PapyrusDebugAdapterDescriptorFactory.ts
  180. +4 −2 src/papyrus-lang-vscode/src/debugger/PapyrusDebugConfigurationProvider.ts
  181. +4 −2 src/papyrus-lang-vscode/src/features/AssemblyTextContentProvider.ts
  182. +9 −3 src/papyrus-lang-vscode/src/features/LanguageConfigurations.ts
  183. +79 −22 src/papyrus-lang-vscode/src/features/LanguageServiceStatusItems.ts
  184. +2 −2 src/papyrus-lang-vscode/src/features/PyroTaskDefinition.ts
  185. +65 −45 src/papyrus-lang-vscode/src/features/PyroTaskProvider.ts
  186. +7 −5 src/papyrus-lang-vscode/src/features/ScriptStatusCodeLensProvider.ts
  187. +16 −5 src/papyrus-lang-vscode/src/features/WelcomeHandler.ts
  188. +2 −0 src/papyrus-lang-vscode/src/features/commands/AttachDebuggerCommand.ts
  189. +4 −1 src/papyrus-lang-vscode/src/features/commands/GameCommandBase.ts
  190. +70 −43 src/papyrus-lang-vscode/src/features/commands/GenerateProjectCommand.ts
  191. +9 −4 src/papyrus-lang-vscode/src/features/commands/InstallDebugSupportCommand.ts
  192. +5 −5 src/papyrus-lang-vscode/src/features/commands/LocateOrDisableGameCommand.ts
  193. +5 −3 src/papyrus-lang-vscode/src/features/commands/SearchCreationKitWikiCommand.ts
  194. +4 −4 src/papyrus-lang-vscode/src/features/commands/ShowOutputChannelCommand.ts
  195. +3 −3 src/papyrus-lang-vscode/src/features/commands/ShowWelcomeCommand.ts
  196. +2 −0 src/papyrus-lang-vscode/src/features/commands/ViewAssemblyCommand.ts
  197. +15 −5 src/papyrus-lang-vscode/src/features/projects/ProjectsTreeDataProvider.ts
  198. +14 −13 src/papyrus-lang-vscode/src/server/LanguageClient.ts
  199. +34 −20 src/papyrus-lang-vscode/src/server/LanguageClientHost.ts
  200. +24 −23 src/papyrus-lang-vscode/src/server/LanguageClientManager.ts
  201. +2 −1 src/papyrus-lang-vscode/src/server/messages/ProjectInfos.ts
  202. +188 −26 src/papyrus-lang-vscode/syntaxes/papyrus/papyrus.tmLanguage
  203. +1 −0 src/papyrus-lang-vscode/tsconfig.json
  204. +20 −0 vcpkg-configuration.json
  205. +54 −0 vcpkg.json
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto
76 changes: 59 additions & 17 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ name: "Build"
on:
push:
branches:
- '**'
- "**"

jobs:
build:
@@ -12,47 +12,89 @@ jobs:
CAKE_SETTINGS_ENABLESCRIPTCACHE: true

steps:
- name: git credentials
uses: oleksiyrudenko/gha-git-credentials@v2-latest
with:
token: "${{ secrets.GITHUB_TOKEN }}"
global: true

- name: Checkout
uses: actions/checkout@v3
working-directory: c:/
run: |
git clone --single-branch --branch $("${{ github.ref }}".Replace('refs/heads/', '')) ${{ github.server_url }}/${{ github.repository }}.git repo
- name: Setup vcpkg
working-directory: c:/
run: |
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
bootstrap-vcpkg.bat
vcpkg.exe integrate install
- name: Cache vcpkg packages
uses: actions/cache@v3
with:
fetch-depth: 0
token: ${{ secrets.GH_TOKEN }}
path: c:/repo/vcpkg_installed
key: ${{ runner.os }}-vcpkg-${{ hashFiles('c:/repo/vcpkg.json') }}
restore-keys: |
${{ runner.os }}-vcpkg-
- name: Cache nuget packages
uses: actions/cache@v3
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('src/*/*.csproj') }}
key: ${{ runner.os }}-nuget-${{ hashFiles('c:/repo/src/*/*.csproj') }}
restore-keys: |
${{ runner.os }}-nuget-
- name: Cache dotnet tools
uses: actions/cache@v3
with:
path: tools
key: ${{ runner.os }}-dotnet-tools-${{ hashFiles('build.cake', '.config/dotnet-tools.json') }}
path: c:/repo/tools
key: ${{ runner.os }}-dotnet-tools-${{ hashFiles('build.cake', 'c:/repo/.config/dotnet-tools.json') }}
restore-keys: |
${{ runner.os }}-dotnet-tools-
- name: Cache NPM
- name: Restore dotnet tools
working-directory: c:/repo
run: |
dotnet tool restore
- uses: actions/setup-node@v3
with:
node-version: 20

- name: Get npm cache directory
id: npm-cache-dir
shell: pwsh
run: echo "dir=$(npm config get cache)" >> ${env:GITHUB_OUTPUT}

- name: Cache npm packages
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('src/**/package-lock.json') }}
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-npm-${{ hashFiles('c:/repo/src/papyrus-lang-vscode/package-lock.json') }}
restore-keys: |
${{ runner.os }}-npm-
- name: Setup Nuget.exe
if: success()
uses: nuget/setup-nuget@v1

- name: Install vcpkg packages
working-directory: c:/repo
run: |
../vcpkg/vcpkg.exe install --x-wait-for-lock --triplet x64-windows-static --x-install-root=c:/repo/vcpkg_installed/skyrim --x-feature=skyrim
../vcpkg/vcpkg.exe install --x-wait-for-lock --triplet x64-windows-static --x-install-root=c:/repo/vcpkg_installed/fallout4 --x-feature=fallout4
- name: Build and Publish
if: success()
uses: ecampidoglio/cake-action@v1
with:
target: default
working-directory: c:/repo
run: |
dotnet cake
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VSCE_PAT: ${{ secrets.VSCE_TOKEN }}
RELEASE: ${{ github.ref == 'refs/heads/main' || github.ref == 'refs/heads/prerelease' }}
PRERELEASE: ${{ github.ref == 'refs/heads/prerelease' }}
# TODO: Rename this stuff for clarity once release build artifacts are being created
# TODO: Cleanup workflows for various event types in general
RELEASE: ${{( github.ref == 'refs/heads/main' || github.ref == 'refs/heads/prerelease') && github.event_name != 'pull_request' && github.event_name != 'pull_request_target' }}
PRERELEASE: ${{ github.ref == 'refs/heads/prerelease' && github.event_name != 'pull_request' && github.event_name != 'pull_request_target' }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@
*.user
*.userosscache
*.sln.docstates
.secrets

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
@@ -333,3 +334,5 @@ ASALocalRun/
tools

send.ps1

vcpkg_installed
64 changes: 64 additions & 0 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
"configurations": [
{
"name": "Skyrim",
"compilerArgs": [
"/utf-8"
],
"includePath": [
"${workspaceFolder}/dependencies/MetaStuff/include",
"${workspaceFolder}/dependencies",
"${workspaceFolder}/src/DarkId.Papyrus.DebugServer",
"${workspaceFolder}/src/DarkId.Papyrus.DebugServer/Protocol",
"${workspaceFolder}/vcpkg_installed/skyrim/x64-windows-static/include",
"${workspaceFolder}/vcpkg_installed/skyrim/x64-windows-static/include/Champollion"
],
"defines": [
"WIN32",
"SKYRIM",
"_DEBUG",
"_WINDOWS",
"_USRDLL",
"DARKID_PAPYRUS_DEBUGSERVER_EXPORTS",
"SKSE_SUPPORT_XBYAK"
],
"forcedInclude": [
"pdsPCH.h"
],
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.34.31933/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++20",
"intelliSenseMode": "msvc-x64"
},
{
"name": "Fallout",
"includePath": [
"${workspaceFolder}/dependencies/MetaStuff/include",
"${workspaceFolder}/dependencies",
"${workspaceFolder}/src/DarkId.Papyrus.DebugServer",
"${workspaceFolder}/src/DarkId.Papyrus.DebugServer/Protocol",
"${workspaceFolder}/vcpkg_installed/fallout4/x64-windows-static/include",
"${workspaceFolder}/vcpkg_installed/skyrim/x64-windows-static/include/Champollion"
],
"defines": [
"WIN32",
"FALLOUT",
"_DEBUG",
"_WINDOWS",
"_USRDLL",
"DARKID_PAPYRUS_DEBUGSERVER_EXPORTS",
"F4SE_SUPPORT_XBYAK"
],
"forcedInclude": [
"${workspaceFolder}/src/DarkId.Papyrus.DebugServer/pdsPCH.h"
],
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.22.27905/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++23",
"intelliSenseMode": "windows-msvc-x64"
}
],
"version": 4
}
5 changes: 3 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"omnisharp.disableMSBuildDiagnosticWarning": true,
"editor.formatOnSave": true,
"papyrus.fallout4.ignoreDebuggerVersion": true
}
"papyrus.fallout4.ignoreDebuggerVersion": true,
"C_Cpp.default.cppStandard": "c++23"
}
130 changes: 2 additions & 128 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,129 +1,3 @@
## Table of Contents
## TODO

1. [About the Project](#about-the-project)
1. [Questions and Help](#questions-and-help)
1. [Getting Started](#getting-started)
1. [Modules and Patterns](#modules-and-patterns)
1. [Useful Resources](#useful-resources)

# About the Project

The VSCode extension is written in TypeScript with C# being used for the language server and debug proxy.

Uses the **[Papyrus Debug Adapter](https://github.com/joelday/papyrus-debug-server) xSE plugin** for live debugging.

Also uses [this fork of **Pyro**](https://github.com/rjstone/pyro) for PPJ builds.

# Questions and Help

Do you have questions or need help? Please come visit the....

[![Discord](https://img.shields.io/discord/558746231665328139.svg?color=%23738ADB) Papyrus Language Tools Discord](https://discord.gg/E4dWujQ)

Even if you don't plan to contribute code, it would be good to hear how you are using the extension and get your feedback.

# Getting Started

## Building

First, you will need Windows with the following installed on your system:

- VSCode [Download and install](https://code.visualstudio.com/)
- Node.js [Download and install](https://nodejs.org/)
- Git for Windows [Download and install](https://git-scm.com/download/win)
- One of the following:
- Minimum: .NET Core 2.1 SDK [Download and install](https://dotnet.microsoft.com/download/dotnet-core)
- Recommended: Microsoft Visual Studio 2019 [Download and install](https://visualstudio.microsoft.com/vs/)

Also, building from the shell will be much easier if you use a **Powershell** (powershell.exe) console because the main build script is written in PS, but if you have Visual Studio installed you should be able to build from the solution file.

### 1

First, Fork the `joelday/papyrus-lang` repo on github. Then clone it:

```powershell
git clone https://github.com/<yourusername>/papyrus-lang.git
cd papyrus-lang
```

### 2

Create a branch for your new development:

```powershell
git checkout -b mynewfeature
```

### 3

Set your upstream remote to help you pull changes from main when needed:

```powershell
git remote add upstream https://github.com/joelday/papyrus-lang.git
```

### 4

Make sure your script execution policy allows running unsigned scripts as long as they're already on disk and not executed from the internet:

```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Get-ExecutionPolicy -List
```

### 5

Run the build script with default targets:

```powershell
.\build.ps1
```

In the same directory, run this to update the bundled third-party packages (which are provided by separate repos):

```powershell
.\build.ps1 -Script build.cake -Target update-debug-plugin
.\build.ps1 -Script build.cake -Target update-pyro-cli
```

### 6

Run VSCode to open the papyrus-lang directory as a folder. If this is still your current directory then just run:

```powershell
code .
```

Hit **Ctrl-Shift-D** to open the Debug panel. At the top select **Launch (Build Extension Only)**.

Hit **F5** to build and launch the extension with debugging. After a little while you will see another VSCode window open. This is the Extension Development Host version of VSCode running the extension that was just built. Any changes you made to the code would be reflected in the debug/test install of the extension running in this window.

### 7

It is not required that you squash your commits before submitting a pull request, so just commit and push your changes to your fork, then submit the pull request for your branch. Please merge from `upstream/master` to your branch before submitting the pull request though to make sure your changes will merge.

```powershell
git merge upstream/main
```

# Modules and Patterns

This is a brief set of links to more info on modules and patterns used in the code.

- [decoration-ioc](https://github.com/joelday/decoration-ioc) is why `InstantiationService` is used to instantiate services and command handlers based on the Service Locator design pattern. It makes it easy to add references to services in the constructor of a class. For example just put `@IExtensionConfigProvider infoProvider: IExtensionConfigProvider` in the argument list of a constructor and it will magically get called with a reference.
- For a simple example of how to add a command, see `src\papyrus-lang-vscode\src\features\commands\ViewAssemblyCommand.ts`
- [rxjs](https://www.npmjs.com/package/rxjs) is used in many places for the reactive Observer/Observable asynchronous pattern.
- [async/await](https://javascript.info/async-await) is used frequently. If possible try to use async functions and `await` on them because this allows other things to happen while a function is blocked on IO etc.
- [deepmerge](https://www.npmjs.com/package/deepmerge) is used in some places.
- Otherwise most of the code is similar to other vscode extensions.

# Useful Resources

- See the [Project Wiki](https://github.com/joelday/papyrus-lang/wiki)
- [The Typescript Programming Language Documentation](https://www.typescriptlang.org/docs/home.html)
- [VSCode Extension Anatomy](https://code.visualstudio.com/api/get-started/extension-anatomy)
- [VSCode Extension Samples](https://github.com/microsoft/vscode-extension-samples) are useful for learning specific APIs
- [Learn RxJS](https://www.learnrxjs.io/) (Reactive eXtensions for Javascript)
- [JavaScript Promises](https://javascript.info/async)
- The [Pro Git](https://git-scm.com/book/en/v2/) book
- The [Contributing](https://github.com/joelday/papyrus-lang/wiki/Contributing) wiki page
Removing for now since the previous version was very out of date.
37 changes: 37 additions & 0 deletions DarkId.Papyrus.DebugServer.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.4.33110.190
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DarkId.Papyrus.DebugServer.Skyrim", "src\DarkId.Papyrus.DebugServer\DarkId.Papyrus.DebugServer.Skyrim.vcxproj", "{9F44D62A-8A45-4FD3-8142-22A229A8A2F4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DarkId.Papyrus.DebugServer.Fallout4", "src\DarkId.Papyrus.DebugServer\DarkId.Papyrus.DebugServer.Fallout4.vcxproj", "{69BB4564-BAE0-4D6B-9D36-752C987B1FA6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9F44D62A-8A45-4FD3-8142-22A229A8A2F4}.Debug|x64.ActiveCfg = Debug|x64
{9F44D62A-8A45-4FD3-8142-22A229A8A2F4}.Debug|x64.Build.0 = Debug|x64
{9F44D62A-8A45-4FD3-8142-22A229A8A2F4}.Debug|x86.ActiveCfg = Debug|x64
{9F44D62A-8A45-4FD3-8142-22A229A8A2F4}.Release|x64.ActiveCfg = Release|x64
{9F44D62A-8A45-4FD3-8142-22A229A8A2F4}.Release|x64.Build.0 = Release|x64
{9F44D62A-8A45-4FD3-8142-22A229A8A2F4}.Release|x86.ActiveCfg = Release|x64
{69BB4564-BAE0-4D6B-9D36-752C987B1FA6}.Debug|x64.ActiveCfg = Debug|x64
{69BB4564-BAE0-4D6B-9D36-752C987B1FA6}.Debug|x64.Build.0 = Debug|x64
{69BB4564-BAE0-4D6B-9D36-752C987B1FA6}.Debug|x86.ActiveCfg = Debug|x64
{69BB4564-BAE0-4D6B-9D36-752C987B1FA6}.Release|x64.ActiveCfg = Release|x64
{69BB4564-BAE0-4D6B-9D36-752C987B1FA6}.Release|x64.Build.0 = Release|x64
{69BB4564-BAE0-4D6B-9D36-752C987B1FA6}.Release|x86.ActiveCfg = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {10021B3F-6663-4F4D-879E-FB9365290403}
EndGlobalSection
EndGlobal
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -28,3 +28,4 @@ Updated frequently with new features and improvements.
- rjstone
- fireundubh (for Pyro)
- Nyo (Pyro fixes)
- [Git](https://icons8.com/icon/0HyDNss5DL1B/git) and [Folder](https://icons8.com/icon/5nzoHCbP0E0i/folder) icons by [Icons8](https://icons8.com)
Loading