lean4monaco 1.0.46 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/README.md +75 -0
  2. package/dist/JuliaMono-Regular.ttf +0 -0
  3. package/dist/css/custom.css +7 -1
  4. package/dist/infowebview.d.ts +3 -4
  5. package/dist/infowebview.js +4 -4
  6. package/dist/lean4-infoview/codicon.ttf +0 -0
  7. package/dist/lean4-infoview/esm-shims/react-dom.d.ts +5 -0
  8. package/dist/lean4-infoview/esm-shims/react-jsx-runtime.d.ts +5 -0
  9. package/dist/lean4-infoview/esm-shims/react.d.ts +5 -0
  10. package/dist/lean4-infoview/index.css +4161 -0
  11. package/dist/lean4-infoview/index.d.ts +16 -0
  12. package/dist/lean4-infoview/index.development.js +37312 -0
  13. package/dist/lean4-infoview/index.production.min.js +1528 -0
  14. package/dist/lean4-infoview/infoview/collapsing.d.ts +12 -0
  15. package/dist/lean4-infoview/infoview/contexts.d.ts +10 -0
  16. package/dist/lean4-infoview/infoview/editorConnection.d.ts +22 -0
  17. package/dist/lean4-infoview/infoview/errors.d.ts +14 -0
  18. package/dist/lean4-infoview/infoview/event.d.ts +33 -0
  19. package/dist/lean4-infoview/infoview/goalLocation.d.ts +61 -0
  20. package/dist/lean4-infoview/infoview/goals.d.ts +46 -0
  21. package/dist/lean4-infoview/infoview/info.d.ts +18 -0
  22. package/dist/lean4-infoview/infoview/infos.d.ts +2 -0
  23. package/dist/lean4-infoview/infoview/interactiveCode.d.ts +19 -0
  24. package/dist/lean4-infoview/infoview/main.d.ts +13 -0
  25. package/dist/lean4-infoview/infoview/messages.d.ts +19 -0
  26. package/dist/lean4-infoview/infoview/rpcSessions.d.ts +11 -0
  27. package/dist/lean4-infoview/infoview/serverVersion.d.ts +10 -0
  28. package/dist/lean4-infoview/infoview/tooltips.d.ts +32 -0
  29. package/dist/lean4-infoview/infoview/traceExplorer.d.ts +11 -0
  30. package/dist/lean4-infoview/infoview/userWidget.d.ts +39 -0
  31. package/dist/lean4-infoview/infoview/util.d.ts +144 -0
  32. package/dist/lean4-infoview/loader.d.ts +20 -0
  33. package/dist/lean4-infoview/loader.development.js +1006 -0
  34. package/dist/lean4-infoview/loader.production.min.js +1 -0
  35. package/dist/lean4-infoview/react-dom.development.js +30537 -0
  36. package/dist/lean4-infoview/react-dom.production.min.js +21 -0
  37. package/dist/lean4-infoview/react-jsx-runtime.development.js +1362 -0
  38. package/dist/lean4-infoview/react-jsx-runtime.production.min.js +1 -0
  39. package/dist/lean4-infoview/react.development.js +2823 -0
  40. package/dist/lean4-infoview/react.production.min.js +1 -0
  41. package/dist/leanmonaco.js +5 -4
  42. package/dist/monaco-lean4/vscode-lean4/package.json +944 -0
  43. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/AbbreviationFeature.d.ts +9 -0
  44. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/AbbreviationFeature.js +20 -0
  45. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/AbbreviationHoverProvider.d.ts +12 -0
  46. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/AbbreviationHoverProvider.js +40 -0
  47. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/AbbreviationRewriterFeature.d.ts +20 -0
  48. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/AbbreviationRewriterFeature.js +79 -0
  49. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/VSCodeAbbreviationConfig.d.ts +13 -0
  50. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/VSCodeAbbreviationConfig.js +29 -0
  51. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/VSCodeAbbreviationRewriter.d.ts +28 -0
  52. package/dist/monaco-lean4/vscode-lean4/src/abbreviation/VSCodeAbbreviationRewriter.js +124 -0
  53. package/dist/monaco-lean4/vscode-lean4/src/config.d.ts +33 -0
  54. package/dist/monaco-lean4/vscode-lean4/src/config.js +119 -0
  55. package/dist/monaco-lean4/vscode-lean4/src/diagnostics/setupNotifs.d.ts +27 -0
  56. package/dist/monaco-lean4/vscode-lean4/src/diagnostics/setupNotifs.js +133 -0
  57. package/dist/monaco-lean4/vscode-lean4/src/infoview.d.ts +69 -0
  58. package/dist/monaco-lean4/vscode-lean4/src/infoview.js +711 -0
  59. package/dist/monaco-lean4/vscode-lean4/src/leanclient.d.ts +67 -0
  60. package/dist/monaco-lean4/vscode-lean4/src/leanclient.js +443 -0
  61. package/dist/monaco-lean4/vscode-lean4/src/rpc.d.ts +16 -0
  62. package/dist/monaco-lean4/vscode-lean4/src/rpc.js +102 -0
  63. package/dist/monaco-lean4/vscode-lean4/src/taskgutter.d.ts +11 -0
  64. package/dist/monaco-lean4/vscode-lean4/src/taskgutter.js +130 -0
  65. package/dist/monaco-lean4/vscode-lean4/src/utils/batch.d.ts +37 -0
  66. package/dist/monaco-lean4/vscode-lean4/src/utils/batch.js +203 -0
  67. package/dist/monaco-lean4/vscode-lean4/src/utils/clientProvider.d.ts +41 -0
  68. package/dist/monaco-lean4/vscode-lean4/src/utils/clientProvider.js +205 -0
  69. package/dist/monaco-lean4/vscode-lean4/src/utils/converters.d.ts +16 -0
  70. package/dist/monaco-lean4/vscode-lean4/src/utils/converters.js +129 -0
  71. package/dist/monaco-lean4/vscode-lean4/src/utils/elan.d.ts +3 -0
  72. package/dist/monaco-lean4/vscode-lean4/src/utils/elan.js +4 -0
  73. package/dist/monaco-lean4/vscode-lean4/src/utils/envPath.d.ts +21 -0
  74. package/dist/monaco-lean4/vscode-lean4/src/utils/envPath.js +53 -0
  75. package/dist/monaco-lean4/vscode-lean4/src/utils/exturi.d.ts +35 -0
  76. package/dist/monaco-lean4/vscode-lean4/src/utils/exturi.js +136 -0
  77. package/dist/monaco-lean4/vscode-lean4/src/utils/fsHelper.d.ts +17 -0
  78. package/dist/monaco-lean4/vscode-lean4/src/utils/fsHelper.js +36 -0
  79. package/dist/monaco-lean4/vscode-lean4/src/utils/leanInstaller.d.ts +37 -0
  80. package/dist/monaco-lean4/vscode-lean4/src/utils/leanInstaller.js +210 -0
  81. package/dist/monaco-lean4/vscode-lean4/src/utils/logger.d.ts +7 -0
  82. package/dist/monaco-lean4/vscode-lean4/src/utils/logger.js +20 -0
  83. package/dist/monaco-lean4/vscode-lean4/src/utils/notifs.d.ts +24 -0
  84. package/dist/monaco-lean4/vscode-lean4/src/utils/notifs.js +110 -0
  85. package/dist/monaco-lean4/vscode-lean4/src/utils/projectInfo.d.ts +9 -0
  86. package/dist/monaco-lean4/vscode-lean4/src/utils/projectInfo.js +125 -0
  87. package/dist/monacoleanclient.d.ts +1 -2
  88. package/dist/monacoleanclient.js +3 -3
  89. package/dist/vscode-lean4/lean4-infoview/package.json +25 -23
  90. package/dist/vscode-lean4/lean4-infoview/src/infoview/highlightjs.css +210 -0
  91. package/dist/vscode-lean4/lean4-infoview/tsconfig.json +6 -2
  92. package/dist/vscode-lean4/lean4-infoview-api/package.json +1 -1
  93. package/dist/vscode-lean4/lean4-unicode-input/package.json +1 -1
  94. package/dist/vscode-lean4/lean4-unicode-input/src/abbreviations.json +12 -12
  95. package/dist/vscode-lean4/lean4-unicode-input-component/package.json +2 -2
  96. package/dist/vscode-lean4/package-lock.json +6129 -3245
  97. package/dist/vscode-lean4/vscode-lean4/language-configuration.json +1 -1
  98. package/dist/vscode-lean4/vscode-lean4/loogleview/static/index.css +19 -16
  99. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-dark.svg +91 -0
  100. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-i-dark.svg +114 -0
  101. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-i-light.svg +114 -0
  102. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-i-passthrough-dark.svg +109 -0
  103. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-i-passthrough-light.svg +109 -0
  104. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-init-dark.svg +100 -0
  105. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-init-light.svg +100 -0
  106. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-l-dark.svg +123 -0
  107. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-l-light.svg +123 -0
  108. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-l-passthrough-dark.svg +109 -0
  109. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-l-passthrough-light.svg +109 -0
  110. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-light.svg +91 -0
  111. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-t-dark.svg +123 -0
  112. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-t-light.svg +123 -0
  113. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-t-passthrough-dark.svg +118 -0
  114. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/error-t-passthrough-light.svg +118 -0
  115. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-dark.svg +138 -0
  116. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-i-passthrough-dark.svg +160 -0
  117. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-i-passthrough-light.svg +160 -0
  118. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-l-passthrough-dark.svg +158 -0
  119. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-l-passthrough-light.svg +158 -0
  120. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-light.svg +138 -0
  121. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-t-passthrough-dark.svg +169 -0
  122. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-checkmark-t-passthrough-light.svg +169 -0
  123. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-dark.svg +147 -0
  124. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-i-passthrough-dark.svg +170 -0
  125. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-i-passthrough-light.svg +170 -0
  126. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-l-passthrough-dark.svg +167 -0
  127. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-l-passthrough-light.svg +167 -0
  128. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-light.svg +147 -0
  129. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-t-passthrough-dark.svg +179 -0
  130. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-circled-checkmark-t-passthrough-light.svg +179 -0
  131. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-dark.svg +165 -0
  132. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-i-passthrough-dark.svg +187 -0
  133. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-i-passthrough-light.svg +187 -0
  134. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-l-passthrough-dark.svg +185 -0
  135. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-l-passthrough-light.svg +185 -0
  136. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-light.svg +165 -0
  137. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-t-passthrough-dark.svg +196 -0
  138. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-octopus-t-passthrough-light.svg +196 -0
  139. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-dark.svg +184 -0
  140. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-i-passthrough-dark.svg +206 -0
  141. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-i-passthrough-light.svg +206 -0
  142. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-l-passthrough-dark.svg +204 -0
  143. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-l-passthrough-light.svg +204 -0
  144. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-light.svg +184 -0
  145. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-t-passthrough-dark.svg +215 -0
  146. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/goals-accomplished-tada-t-passthrough-light.svg +215 -0
  147. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-dark.svg +132 -0
  148. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-i-passthrough-dark.svg +154 -0
  149. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-i-passthrough-light.svg +154 -0
  150. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-l-passthrough-dark.svg +152 -0
  151. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-l-passthrough-light.svg +152 -0
  152. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-light.svg +132 -0
  153. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-t-passthrough-dark.svg +163 -0
  154. package/dist/vscode-lean4/vscode-lean4/media/diagnostic-gutter-icons/warning-t-passthrough-light.svg +163 -0
  155. package/dist/vscode-lean4/vscode-lean4/moogleview/static/index.css +198 -0
  156. package/dist/vscode-lean4/vscode-lean4/moogleview/tsconfig.json +10 -0
  157. package/dist/vscode-lean4/vscode-lean4/package.json +638 -18
  158. package/dist/vscode-lean4/vscode-lean4/src/abbreviation/AbbreviationFeature.d.ts +2 -2
  159. package/dist/vscode-lean4/vscode-lean4/src/abbreviation/AbbreviationFeature.js +2 -2
  160. package/dist/vscode-lean4/vscode-lean4/src/abbreviation/AbbreviationRewriterFeature.d.ts +2 -3
  161. package/dist/vscode-lean4/vscode-lean4/src/abbreviation/AbbreviationRewriterFeature.js +3 -5
  162. package/dist/vscode-lean4/vscode-lean4/src/abbreviation/VSCodeAbbreviationRewriter.d.ts +1 -2
  163. package/dist/vscode-lean4/vscode-lean4/src/abbreviation/VSCodeAbbreviationRewriter.js +4 -8
  164. package/dist/vscode-lean4/vscode-lean4/src/config.d.ts +14 -1
  165. package/dist/vscode-lean4/vscode-lean4/src/config.js +56 -5
  166. package/dist/vscode-lean4/vscode-lean4/src/diagnostics/setupDiagnoser.d.ts +36 -5
  167. package/dist/vscode-lean4/vscode-lean4/src/diagnostics/setupDiagnoser.js +59 -23
  168. package/dist/vscode-lean4/vscode-lean4/src/diagnostics/setupDiagnostics.d.ts +22 -17
  169. package/dist/vscode-lean4/vscode-lean4/src/diagnostics/setupDiagnostics.js +182 -119
  170. package/dist/vscode-lean4/vscode-lean4/src/diagnostics/setupNotifs.d.ts +33 -20
  171. package/dist/vscode-lean4/vscode-lean4/src/diagnostics/setupNotifs.js +235 -89
  172. package/dist/vscode-lean4/vscode-lean4/src/infoview.d.ts +7 -18
  173. package/dist/vscode-lean4/vscode-lean4/src/infoview.js +217 -102
  174. package/dist/vscode-lean4/vscode-lean4/src/leanclient.d.ts +12 -7
  175. package/dist/vscode-lean4/vscode-lean4/src/leanclient.js +187 -64
  176. package/dist/vscode-lean4/vscode-lean4/src/taskgutter.d.ts +35 -3
  177. package/dist/vscode-lean4/vscode-lean4/src/taskgutter.js +533 -93
  178. package/dist/vscode-lean4/vscode-lean4/src/utils/batch.d.ts +12 -4
  179. package/dist/vscode-lean4/vscode-lean4/src/utils/batch.js +78 -72
  180. package/dist/vscode-lean4/vscode-lean4/src/utils/clientProvider.d.ts +9 -9
  181. package/dist/vscode-lean4/vscode-lean4/src/utils/clientProvider.js +121 -77
  182. package/dist/vscode-lean4/vscode-lean4/src/utils/converters.d.ts +15 -0
  183. package/dist/vscode-lean4/vscode-lean4/src/utils/converters.js +9 -0
  184. package/dist/vscode-lean4/vscode-lean4/src/utils/elan.d.ts +179 -1
  185. package/dist/vscode-lean4/vscode-lean4/src/utils/elan.js +422 -3
  186. package/dist/vscode-lean4/vscode-lean4/src/utils/exturi.d.ts +3 -1
  187. package/dist/vscode-lean4/vscode-lean4/src/utils/exturi.js +11 -11
  188. package/dist/vscode-lean4/vscode-lean4/src/utils/groupBy.d.ts +2 -0
  189. package/dist/vscode-lean4/vscode-lean4/src/utils/groupBy.js +17 -0
  190. package/dist/vscode-lean4/vscode-lean4/src/utils/internalErrors.d.ts +2 -0
  191. package/dist/vscode-lean4/vscode-lean4/src/utils/internalErrors.js +35 -0
  192. package/dist/vscode-lean4/vscode-lean4/src/utils/leanCmdRunner.d.ts +34 -0
  193. package/dist/vscode-lean4/vscode-lean4/src/utils/leanCmdRunner.js +249 -0
  194. package/dist/vscode-lean4/vscode-lean4/src/utils/leanEditorProvider.d.ts +83 -0
  195. package/dist/vscode-lean4/vscode-lean4/src/utils/leanEditorProvider.js +323 -0
  196. package/dist/vscode-lean4/vscode-lean4/src/utils/leanInstaller.d.ts +41 -12
  197. package/dist/vscode-lean4/vscode-lean4/src/utils/leanInstaller.js +245 -128
  198. package/dist/vscode-lean4/vscode-lean4/src/utils/notifs.d.ts +27 -22
  199. package/dist/vscode-lean4/vscode-lean4/src/utils/notifs.js +177 -82
  200. package/dist/vscode-lean4/vscode-lean4/src/utils/projectInfo.d.ts +11 -4
  201. package/dist/vscode-lean4/vscode-lean4/src/utils/projectInfo.js +18 -16
  202. package/dist/vscode-lean4/vscode-lean4/src/utils/semverRegex.d.ts +1 -0
  203. package/dist/vscode-lean4/vscode-lean4/src/utils/semverRegex.js +2 -0
  204. package/dist/vscode-lean4/vscode-lean4/src/utils/viewColumn.d.ts +3 -0
  205. package/dist/vscode-lean4/vscode-lean4/src/utils/viewColumn.js +22 -0
  206. package/dist/vscode-lean4/vscode-lean4/tsconfig.json +2 -1
  207. package/dist/vscode-lean4/vscode-lean4/webview/tsconfig.json +3 -1
  208. package/dist/vscode.css +7 -0
  209. package/package.json +7 -5
@@ -1,5 +1,5 @@
1
1
  import { shouldShowSetupWarnings } from '../config';
2
- import { displayError, displayErrorWithInput, displayErrorWithOptionalInput, displayErrorWithOutput, displayErrorWithSetupGuide, displayModalWarning, displayModalWarningWithOutput, displayModalWarningWithSetupGuide, displayWarning, displayWarningWithInput, displayWarningWithOptionalInput, displayWarningWithOutput, displayWarningWithSetupGuide, } from '../utils/notifs';
2
+ import { displayModalNotification, displayModalNotificationWithOutput, displayModalNotificationWithSetupGuide, displayNotification, displayNotificationWithInput, displayNotificationWithOptionalInput, displayNotificationWithOutput, displayNotificationWithSetupGuide, displayStickyNotificationWithOptionalInput, displayStickyNotificationWithOutput, displayStickyNotificationWithSetupGuide, } from '../utils/notifs';
3
3
  export function preconditionCheckResultToSeverity(result) {
4
4
  switch (result) {
5
5
  case 'Fulfilled':
@@ -29,105 +29,251 @@ export function worstPreconditionViolation(...results) {
29
29
  }
30
30
  return worstViolation;
31
31
  }
32
- export function displaySetupError(message, finalizer) {
33
- displayError(message, finalizer);
34
- return 'Fatal';
35
- }
36
- export async function displaySetupErrorWithInput(message, ...items) {
37
- return await displayErrorWithInput(message, ...items);
38
- }
39
- export function displaySetupErrorWithOptionalInput(message, input, action, finalizer) {
40
- displayErrorWithOptionalInput(message, input, action, finalizer);
41
- return 'Fatal';
42
- }
43
- export function displaySetupErrorWithOutput(message, finalizer) {
44
- displayErrorWithOutput(message, finalizer);
45
- return 'Fatal';
46
- }
47
- export function displaySetupErrorWithSetupGuide(message, finalizer) {
48
- displayErrorWithSetupGuide(message, finalizer);
49
- return 'Fatal';
50
- }
51
- export function displayDependencySetupError(missingDeps) {
52
- if (missingDeps.length === 0) {
53
- throw new Error();
32
+ const closeItem = 'Close';
33
+ const proceedItem = 'Proceed';
34
+ const proceedRegardlessItem = 'Proceed Regardless';
35
+ const retryItem = {
36
+ input: 'Retry',
37
+ continueDisplaying: false,
38
+ action: async () => { },
39
+ };
40
+ export class SetupNotifier {
41
+ options;
42
+ subscriptions = [];
43
+ constructor(options) {
44
+ this.options = options;
54
45
  }
55
- let missingDepMessage;
56
- if (missingDeps.length === 1) {
57
- missingDepMessage = `One of Lean's dependencies ('${missingDeps.at(0)}') is missing`;
46
+ async error(notifs) {
47
+ const m = this.options.errorMode;
48
+ if (m.mode === 'Modal') {
49
+ return await notifs.modal();
50
+ }
51
+ if (m.mode === 'NonModal') {
52
+ if (notifs.nonModal === undefined) {
53
+ return await notifs.modal();
54
+ }
55
+ return notifs.nonModal();
56
+ }
57
+ const r = await notifs.modal();
58
+ if (r !== 'Fatal') {
59
+ return r;
60
+ }
61
+ const options = {
62
+ onInput: async (_, continueDisplaying) => {
63
+ if (!continueDisplaying) {
64
+ await m.retry();
65
+ }
66
+ return continueDisplaying;
67
+ },
68
+ onDisplay: async () => { },
69
+ };
70
+ const d = await notifs.sticky(options);
71
+ this.subscriptions.push(d);
72
+ return 'Fatal';
58
73
  }
59
- else {
60
- missingDepMessage = `Multiple of Lean's dependencies (${missingDeps.map(dep => `'${dep}'`).join(', ')}) are missing`;
74
+ async warning(notifs) {
75
+ if (!shouldShowSetupWarnings()) {
76
+ return 'Warning';
77
+ }
78
+ if (this.options.warningMode.modal || notifs.nonModal === undefined) {
79
+ if (this.options.warningMode.proceedByDefault) {
80
+ return await notifs.modalProceedByDefault();
81
+ }
82
+ else {
83
+ return await notifs.modalAskBeforeProceeding();
84
+ }
85
+ }
86
+ else {
87
+ return notifs.nonModal();
88
+ }
61
89
  }
62
- const errorMessage = `${missingDepMessage}. Please read the Setup Guide on how to install missing dependencies and set up Lean 4.`;
63
- displaySetupErrorWithSetupGuide(errorMessage);
64
- return 'Fatal';
65
- }
66
- export async function displayElanSetupError(installer, reason) {
67
- const isElanInstalled = await installer.displayInstallElanPrompt('Error', reason);
68
- return isElanInstalled ? 'Fulfilled' : 'Fatal';
69
- }
70
- export async function displayElanOutdatedSetupError(installer, currentVersion, recommendedVersion) {
71
- const isElanUpToDate = await installer.displayUpdateElanPrompt('Error', currentVersion, recommendedVersion);
72
- return isElanUpToDate ? 'Fulfilled' : 'Fatal';
73
- }
74
- export async function displaySetupWarning(message, options = { modal: false }) {
75
- if (!shouldShowSetupWarnings()) {
76
- return 'Warning';
90
+ async displaySetupError(message) {
91
+ return await this.error({
92
+ modal: async () => {
93
+ await displayModalNotification('Error', message);
94
+ return 'Fatal';
95
+ },
96
+ nonModal: () => {
97
+ displayNotification('Error', message);
98
+ return 'Fatal';
99
+ },
100
+ sticky: async (options) => displayStickyNotificationWithOptionalInput('Error', message, options, [retryItem]),
101
+ });
77
102
  }
78
- if (options.modal) {
79
- const choice = await displayModalWarning(message);
80
- return choice === 'Proceed' ? 'Warning' : 'Fatal';
103
+ async displaySetupWarning(message) {
104
+ return await this.warning({
105
+ modalProceedByDefault: async () => {
106
+ await displayModalNotification('Warning', message);
107
+ return 'Warning';
108
+ },
109
+ modalAskBeforeProceeding: async () => {
110
+ const choice = await displayNotificationWithInput('Warning', message, [proceedRegardlessItem]);
111
+ return choice === proceedRegardlessItem ? 'Warning' : 'Fatal';
112
+ },
113
+ nonModal: () => {
114
+ displayNotification('Warning', message);
115
+ return 'Warning';
116
+ },
117
+ });
81
118
  }
82
- displayWarning(message, options.finalizer);
83
- return 'Warning';
84
- }
85
- export async function displaySetupWarningWithInput(message, ...items) {
86
- if (!shouldShowSetupWarnings()) {
87
- return undefined;
119
+ async displaySetupErrorWithInput(message, inputs) {
120
+ return await this.error({
121
+ modal: async () => {
122
+ const choice = await displayNotificationWithInput('Error', message, inputs.map(i => i.input));
123
+ const chosenInput = inputs.find(i => i.input === choice);
124
+ await chosenInput?.action();
125
+ return 'Fatal';
126
+ },
127
+ nonModal: () => {
128
+ displayNotificationWithOptionalInput('Error', message, inputs);
129
+ return 'Fatal';
130
+ },
131
+ sticky: async (options) => displayStickyNotificationWithOptionalInput('Error', message, options, [retryItem, ...inputs]),
132
+ });
88
133
  }
89
- return await displayWarningWithInput(message, ...items);
90
- }
91
- export function displaySetupWarningWithOptionalInput(message, input, action, finalizer) {
92
- if (!shouldShowSetupWarnings()) {
93
- return 'Warning';
134
+ async displaySetupWarningWithInput(message, inputs) {
135
+ return await this.warning({
136
+ modalProceedByDefault: async () => {
137
+ const choice = await displayNotificationWithInput('Warning', message, inputs.map(i => i.input), proceedItem);
138
+ const chosenInput = inputs.find(i => i.input === choice);
139
+ chosenInput?.action();
140
+ return 'Warning';
141
+ },
142
+ modalAskBeforeProceeding: async () => {
143
+ const choice = await displayNotificationWithInput('Warning', message, [
144
+ ...inputs.map(i => i.input),
145
+ proceedRegardlessItem,
146
+ ]);
147
+ const chosenInput = inputs.find(i => i.input === choice);
148
+ chosenInput?.action();
149
+ return choice === proceedRegardlessItem ? 'Warning' : 'Fatal';
150
+ },
151
+ nonModal: () => {
152
+ displayNotificationWithOptionalInput('Warning', message, inputs);
153
+ return 'Warning';
154
+ },
155
+ });
94
156
  }
95
- displayWarningWithOptionalInput(message, input, action, finalizer);
96
- return 'Warning';
97
- }
98
- export async function displaySetupWarningWithOutput(message, options = { modal: false }) {
99
- if (!shouldShowSetupWarnings()) {
100
- return 'Warning';
157
+ async displaySetupErrorWithOutput(message) {
158
+ return await this.error({
159
+ modal: async () => {
160
+ await displayModalNotificationWithOutput('Error', message, [], closeItem);
161
+ return 'Fatal';
162
+ },
163
+ nonModal: () => {
164
+ displayNotificationWithOutput('Error', message);
165
+ return 'Fatal';
166
+ },
167
+ sticky: async (options) => displayStickyNotificationWithOutput('Error', message, options, [retryItem]),
168
+ });
101
169
  }
102
- if (options.modal) {
103
- const choice = await displayModalWarningWithOutput(message);
104
- return choice === 'Proceed' ? 'Warning' : 'Fatal';
170
+ async displaySetupWarningWithOutput(message) {
171
+ return await this.warning({
172
+ modalProceedByDefault: async () => {
173
+ await displayModalNotificationWithOutput('Warning', message, [], proceedItem);
174
+ return 'Warning';
175
+ },
176
+ modalAskBeforeProceeding: async () => {
177
+ const choice = await displayModalNotificationWithOutput('Warning', message, [proceedRegardlessItem]);
178
+ return choice === proceedRegardlessItem ? 'Warning' : 'Fatal';
179
+ },
180
+ nonModal: () => {
181
+ displayNotificationWithOutput('Warning', message);
182
+ return 'Warning';
183
+ },
184
+ });
105
185
  }
106
- displayWarningWithOutput(message, options.finalizer);
107
- return 'Warning';
108
- }
109
- export async function displaySetupWarningWithSetupGuide(message, options = { modal: false }) {
110
- if (!shouldShowSetupWarnings()) {
111
- return 'Warning';
186
+ async displaySetupErrorWithSetupGuide(message) {
187
+ return await this.error({
188
+ modal: async () => {
189
+ await displayModalNotificationWithSetupGuide('Error', message, [], closeItem);
190
+ return 'Fatal';
191
+ },
192
+ nonModal: () => {
193
+ displayNotificationWithSetupGuide('Error', message);
194
+ return 'Fatal';
195
+ },
196
+ sticky: async (options) => displayStickyNotificationWithSetupGuide('Error', message, options, [retryItem]),
197
+ });
112
198
  }
113
- if (options.modal) {
114
- const choice = await displayModalWarningWithSetupGuide(message);
115
- return choice === 'Proceed' ? 'Warning' : 'Fatal';
199
+ async displaySetupWarningWithSetupGuide(message) {
200
+ return await this.warning({
201
+ modalProceedByDefault: async () => {
202
+ await displayModalNotificationWithSetupGuide('Warning', message, [], proceedItem);
203
+ return 'Warning';
204
+ },
205
+ modalAskBeforeProceeding: async () => {
206
+ const choice = await displayModalNotificationWithSetupGuide('Warning', message, [proceedRegardlessItem]);
207
+ return choice === proceedRegardlessItem ? 'Warning' : 'Fatal';
208
+ },
209
+ nonModal: () => {
210
+ displayNotificationWithSetupGuide('Warning', message);
211
+ return 'Warning';
212
+ },
213
+ });
116
214
  }
117
- displayWarningWithSetupGuide(message, options.finalizer);
118
- return 'Warning';
119
- }
120
- export async function displayElanSetupWarning(installer, reason) {
121
- if (!shouldShowSetupWarnings()) {
122
- return 'Warning';
215
+ async displayElanSetupError(installer, reason) {
216
+ return await this.error({
217
+ modal: async () => {
218
+ const isElanInstalled = await installer.displayInstallElanPrompt('Error', reason);
219
+ return isElanInstalled ? 'Fulfilled' : 'Fatal';
220
+ },
221
+ sticky: async (options) => installer.displayStickyInstallElanPrompt('Error', reason, options, [retryItem]),
222
+ });
123
223
  }
124
- const isElanInstalled = await installer.displayInstallElanPrompt('Warning', reason);
125
- return isElanInstalled ? 'Fulfilled' : 'Warning';
126
- }
127
- export async function displayElanOutdatedSetupWarning(installer, currentVersion, recommendedVersion) {
128
- if (!shouldShowSetupWarnings()) {
129
- return 'Warning';
224
+ async displayElanSetupWarning(installer, reason) {
225
+ return await this.warning({
226
+ modalProceedByDefault: async () => {
227
+ const r = await installer.displayInstallElanPromptWithItems('Warning', reason, [], proceedItem);
228
+ const success = r !== undefined && r.kind === 'InstallElan' && r.success;
229
+ return success ? 'Fulfilled' : 'Warning';
230
+ },
231
+ modalAskBeforeProceeding: async () => {
232
+ const r = await installer.displayInstallElanPromptWithItems('Warning', reason, [proceedRegardlessItem]);
233
+ if (r === undefined) {
234
+ return 'Fatal';
235
+ }
236
+ if (r.kind === 'InstallElan') {
237
+ return r.success ? 'Fulfilled' : 'Warning';
238
+ }
239
+ return 'Warning';
240
+ },
241
+ });
242
+ }
243
+ async displayElanOutdatedSetupError(installer, currentVersion, recommendedVersion) {
244
+ const mode = {
245
+ kind: 'Outdated',
246
+ versions: { currentVersion, recommendedVersion },
247
+ };
248
+ return await this.error({
249
+ modal: async () => {
250
+ const isElanUpToDate = await installer.displayUpdateElanPrompt('Error', mode);
251
+ return isElanUpToDate ? 'Fulfilled' : 'Fatal';
252
+ },
253
+ sticky: async (options) => installer.displayStickyUpdateElanPrompt('Error', mode, options, [retryItem]),
254
+ });
255
+ }
256
+ async displayElanOutdatedSetupWarning(installer, currentVersion, recommendedVersion) {
257
+ const mode = {
258
+ kind: 'Outdated',
259
+ versions: { currentVersion, recommendedVersion },
260
+ };
261
+ return await this.warning({
262
+ modalProceedByDefault: async () => {
263
+ const r = await installer.displayUpdateElanPromptWithItems('Warning', mode, [], proceedItem);
264
+ const success = r !== undefined && r.kind === 'UpdateElan' && r.success;
265
+ return success ? 'Fulfilled' : 'Warning';
266
+ },
267
+ modalAskBeforeProceeding: async () => {
268
+ const r = await installer.displayUpdateElanPromptWithItems('Warning', mode, [proceedRegardlessItem]);
269
+ if (r === undefined) {
270
+ return 'Fatal';
271
+ }
272
+ if (r.kind === 'UpdateElan') {
273
+ return r.success ? 'Fulfilled' : 'Warning';
274
+ }
275
+ return 'Warning';
276
+ },
277
+ });
130
278
  }
131
- const isElanUpToDate = await installer.displayUpdateElanPrompt('Warning', currentVersion, recommendedVersion);
132
- return isElanUpToDate ? 'Fulfilled' : 'Warning';
133
279
  }
@@ -1,20 +1,9 @@
1
- import { EditorApi, InfoviewApi, ServerStoppedReason } from '@leanprover/infoview-api';
2
- import { Disposable, DocumentSelector, Event, ExtensionContext, ViewColumn } from 'vscode';
1
+ import { ServerStoppedReason } from '@leanprover/infoview-api';
2
+ import { Disposable, ExtensionContext } from 'vscode';
3
3
  import * as ls from 'vscode-languageserver-protocol';
4
4
  import { LeanClient } from './leanclient';
5
- import { Rpc } from './rpc';
6
5
  import { LeanClientProvider } from './utils/clientProvider';
7
- export interface InfoWebview {
8
- readonly api: InfoviewApi;
9
- readonly rpc: Rpc;
10
- readonly visible: boolean;
11
- dispose(): any;
12
- reveal(viewColumn?: ViewColumn, preserveFocus?: boolean): void;
13
- onDidDispose: Event<void>;
14
- }
15
- export interface InfoWebviewFactory {
16
- make(editorApi: EditorApi, stylesheet: string, column: number): InfoWebview;
17
- }
6
+ import { IFrameInfoWebviewFactory } from '../../../infowebview';
18
7
  export declare class RpcSessionAtPos implements Disposable {
19
8
  sessionId: string;
20
9
  uri: ls.DocumentUri;
@@ -24,8 +13,7 @@ export declare class RpcSessionAtPos implements Disposable {
24
13
  dispose(): void;
25
14
  }
26
15
  export declare class InfoProvider implements Disposable {
27
- private provider;
28
- private readonly leanDocs;
16
+ private clientProvider;
29
17
  private context;
30
18
  private infoWebviewFactory;
31
19
  /** Instance of the panel, if it is open. Otherwise `undefined`. */
@@ -34,7 +22,6 @@ export declare class InfoProvider implements Disposable {
34
22
  private clientSubscriptions;
35
23
  private stylesheet;
36
24
  private autoOpened;
37
- private clientProvider;
38
25
  private serverNotifSubscriptions;
39
26
  private clientNotifSubscriptions;
40
27
  private rpcSessions;
@@ -45,7 +32,7 @@ export declare class InfoProvider implements Disposable {
45
32
  private subscribeDiagnosticsNotification;
46
33
  private subscribeCustomNotification;
47
34
  private editorApi;
48
- constructor(provider: LeanClientProvider, leanDocs: DocumentSelector, context: ExtensionContext, infoWebviewFactory: InfoWebviewFactory);
35
+ constructor(clientProvider: LeanClientProvider, context: ExtensionContext, infoWebviewFactory: IFrameInfoWebviewFactory);
49
36
  private onClientRestarted;
50
37
  private onClientAdded;
51
38
  onWorkerRestarted(uri: string): Promise<void>;
@@ -75,4 +62,6 @@ export declare class InfoProvider implements Disposable {
75
62
  private updateStatus;
76
63
  private revealEditorSelection;
77
64
  private handleInsertText;
65
+ private getLocalPath;
66
+ private initialHtml;
78
67
  }