mdx-analyzer icon indicating copy to clipboard operation
mdx-analyzer copied to clipboard

feat: add initial intellisense

Open remcohaszing opened this issue 3 years ago • 2 comments

This is a proof of concept for MDX intellisense support for multiple editors. The idea is to turn this repository into a monorepo.

The following packages have been added:

  • @mdx-js/language-service handles the actual logic needed for intellisense features. It provides a JavaScript API implementing interfaces from vscode-languageserver-types.
  • @mdx-js/language-server provides @mdx-js/language-service as an actual language server. This package is supposed to be consumed by projects such as NeoVim, vim-lsp, sublimelsp, and Emacs lsp-mode.
  • @mdx-js/monaco integrates @mdx-js/language-service into Monaco editor.
  • vscode-mdx provides @mdx-js/language-server as a VSCode plugin. Currently the VSCode extension is the monorepo root and the client code lives in @mdx-js/language-client, but I think it makes sense to merge both into a (private) package vscode-mdx.

The current implementation is still very raw. It just provides definitions for link references. The next big step is to integrate TypeScript.

remcohaszing avatar Sep 08 '22 15:09 remcohaszing

🦋 Changeset detected

Latest commit: ad45694dabab07fccd3acb0b60e91e2f2b3533cf

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

changeset-bot[bot] avatar Sep 08 '22 15:09 changeset-bot[bot]

📊 Package size report   No changes

File Before After
Total (Includes all files) 29.7 kB 29.7 kB
Tarball size 12.4 kB 12.4 kB
Unchanged files
File Size
.changeset/config.json 312 B
.changeset/README.md 510 B
.commitlintrc 35 B
.editorconfig 161 B
.eslintignore 32 B
.eslintrc 191 B
.github/FUNDING.yml 234 B
.github/workflows/ci.yml 551 B
.github/workflows/pkg-size.yml 496 B
.github/workflows/publish.yml 1.2 kB
.github/workflows/release.yml 323 B
.github/workflows/version.yml 853 B
.lintstagedrc.js 46 B
.prettierrc 24 B
.remarkrc 42 B
.renovaterc 35 B
.simple-git-hooks.js 51 B
.vscode/launch.json 540 B
.vscodeignore 103 B
.yarnrc 20 B
assets/mdx.png 3.3 kB
CHANGELOG.md 3.9 kB
language-configuration.jsonc 1.1 kB
LICENSE 1.1 kB
package.json 4.6 kB
patches/eslint-mdx+2.0.2.patch 796 B
README.md 7.3 kB
syntaxes/mdx.tmLanguage.json 1.3 kB
test/component.js 54 B
test/fixture.mdx 423 B

🤖 This report was automatically generated by pkg-size-action

github-actions[bot] avatar Sep 08 '22 15:09 github-actions[bot]

I think this is now usable enough to be released as an experimental feature. I.e. it could be opt-in using a boolean setting mdx.experimentalLanguageServer.

remcohaszing avatar Oct 25 '22 13:10 remcohaszing

Tests are still missing. ~~I’m inclined to use Playwright, so the same test runner can be used for Monaco editor and the language server.~~ Playwright doesn’t play nice with subprocess output. Playwright is used for the Monaco editor integration, but the language server is now tested using node:test.

remcohaszing avatar Oct 25 '22 15:10 remcohaszing

Tests are still missing. I’m inclined to use Playwright, so the same test runner can be used for Monaco editor and the language server.

Sounds good. Is this planned as part of this PR? Or a future PR?

ChristianMurphy avatar Nov 16 '22 14:11 ChristianMurphy

Tests are still missing. I’m inclined to use Playwright, so the same test runner can be used for Monaco editor and the language server.

Sounds good. Is this planned as part of this PR? Or a future PR?

This is what I’m working on right now! I was hoping to resolve https://github.com/microsoft/vscode-languageserver-node/issues/1070 first, but didn’t manage to.

remcohaszing avatar Nov 17 '22 10:11 remcohaszing

I decided to go with node:test instead of Playwright. Playwright hides stdout from subprocesses, which makes tests hard to debug.

remcohaszing avatar Nov 24 '22 13:11 remcohaszing

@remcohaszing This is amazing thank you SO much for all of your hard work :heart:

Vap0r1ze avatar Dec 25 '22 14:12 Vap0r1ze

In the pr's current state, I'm getting this issue:

Error: Cannot find module 'typescript'
Require stack:
- c:\Users\super\.vscode\extensions\unifiedjs.vscode-mdx-1.0.3\out\language-server.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:987:15)
    at Module._load (node:internal/modules/cjs/loader:832:27)
    at c._load (node:electron/js2c/asar_bundle:5:13343)
    at Module.require (node:internal/modules/cjs/loader:1059:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (c:\Users\super\.vscode\extensions\unifiedjs.vscode-mdx-1.0.3\out\language-server.js:41:6782)
    at Module._compile (node:internal/modules/cjs/loader:1165:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1220:10)
    at Module.load (node:internal/modules/cjs/loader:1035:32)
    at Module._load (node:internal/modules/cjs/loader:876:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'c:\\Users\\super\\.vscode\\extensions\\unifiedjs.vscode-mdx-1.0.3\\out\\language-server.js'
  ]
}```

Vap0r1ze avatar Dec 30 '22 15:12 Vap0r1ze

@Vap0r1ze Thank for reporting! The latest commit should fix that.

remcohaszing avatar Dec 30 '22 15:12 remcohaszing

It did fix it thank you! But now I'm getting this error when writing an import statement from a brand new file:

Show error
Error: Could not find source file: 'c:\Users\super\GitHub\Vencord\docs\pages\test.mdx'.
    at ke (c:\Users\super\.vscode\extensions\unifiedjs.vscode-mdx-1.0.3\out\language-server.js:266:8159)
    at Object.Lr [as getSemanticDiagnostics] (c:\Users\super\.vscode\extensions\unifiedjs.vscode-mdx-1.0.3\out\language-server.js:266:14376)
    at Object.getSemanticDiagnostics (c:\Users\super\.vscode\extensions\unifiedjs.vscode-mdx-1.0.3\out\language-server.js:353:8967)
    at sM (c:\Users\super\.vscode\extensions\unifiedjs.vscode-mdx-1.0.3\out\language-server.js:353:15389)
    at Gk.invoke (c:\Users\super\.vscode\extensions\unifiedjs.vscode-mdx-1.0.3\out\language-server.js:271:14441)
    at _0.fire (c:\Users\super\.vscode\extensions\unifiedjs.vscode-mdx-1.0.3\out\language-server.js:271:15209)
    at c:\Users\super\.vscode\extensions\unifiedjs.vscode-mdx-1.0.3\out\language-server.js:302:59766
    at d (c:\Users\super\.vscode\extensions\unifiedjs.vscode-mdx-1.0.3\out\language-server.js:273:1611)
    at M (c:\Users\super\.vscode\extensions\unifiedjs.vscode-mdx-1.0.3\out\language-server.js:272:6856)
    at Immediate._onImmediate (c:\Users\super\.vscode\extensions\unifiedjs.vscode-mdx-1.0.3\out\language-server.js:272:6732) {
  ProgramFiles: [
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/@[email protected]/node_modules/@types/react/global.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/csstype/index.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/@[email protected]/node_modules/@types/prop-types/index.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/@[email protected]/node_modules/@types/scheduler/tracing.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/@[email protected]/node_modules/@types/react/index.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/@[email protected]/node_modules/@types/react/jsx-runtime.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/primitive.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/typed-array.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/basic.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/observable-like.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/empty-object.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/simplify.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/internal.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/except.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/writable.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/omit-index-signature.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/pick-index-signature.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/enforce-optional.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/merge.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/conditional-simplify.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/merge-deep.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/merge-exclusive.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/require-at-least-one.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/require-exactly-one.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/require-all-or-none.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/partial-deep.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/partial-on-undefined-deep.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/readonly-deep.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/literal-union.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/promisable.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/opaque.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/invariant-of.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/set-optional.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/set-required.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/set-non-nullable.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/value-of.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/async-return-type.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/conditional-keys.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/conditional-except.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/conditional-pick.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/conditional-pick-deep.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/union-to-intersection.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/stringified.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/fixed-length-array.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/multidimensional-array.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/multidimensional-readonly-array.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/iterable-element.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/entry.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/entries.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/set-return-type.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/asyncify.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/numeric.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/jsonify.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/jsonifiable.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/schema.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/literal-to-primitive.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/string-key-of.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/exact.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/readonly-tuple.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/optional-keys-of.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/has-optional-keys.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/required-keys-of.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/has-required-keys.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/spread.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/tuple-to-union.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/split-words.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/camel-case.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/camel-cased-properties.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/camel-cased-properties-deep.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/delimiter-case.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/kebab-case.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/delimiter-cased-properties.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/kebab-cased-properties.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/kebab-cased-properties-deep.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/pascal-case.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/pascal-cased-properties.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/pascal-cased-properties-deep.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/snake-case.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/snake-cased-properties.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/snake-cased-properties-deep.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/includes.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/screaming-snake-case.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/join.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/split.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/trim.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/replace.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/get.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/last-array-element.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/package-json.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/source/tsconfig-json.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]/node_modules/type-fest/index.d.ts',
    'c:/Users/super/GitHub/Vencord/docs/constants.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]_pftdh3zqu4qevmbqg2nu3a7f3e/node_modules/vite/types/hmrPayload.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]_pftdh3zqu4qevmbqg2nu3a7f3e/node_modules/vite/types/customEvent.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]_pftdh3zqu4qevmbqg2nu3a7f3e/node_modules/vite/types/hot.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]_pftdh3zqu4qevmbqg2nu3a7f3e/node_modules/vite/types/importGlob.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/[email protected]_pftdh3zqu4qevmbqg2nu3a7f3e/node_modules/astro/import-meta.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/@[email protected]/node_modules/@types/node/assert.d.ts',
    'C:/Users/super/GitHub/Vencord/node_modules/.pnpm/@[email protected]/node_modules/@types/node/assert/strict.d.ts',
    ... 372 more items
  ]
}
Also, does that change mean mdx won't always use my project's ts version?

Vap0r1ze avatar Dec 30 '22 15:12 Vap0r1ze

Thanks for trying this out early. Personally I use Linux. If it works on Linux, it tends to work on MacOS as well, and vice versa. Unfortunately I’ve hit some issues troubleshooting in my Windows 11 VM. Specifically I ran into https://github.com/npm/cli/issues/6005 and whatever issue causes CI to get stuck in playwright-monaco.

The fact that you managed to build this PR on Windows, means you got further than I did. If you’re interested, you could help me out a great deal by:

  • Fixing Windows tests for playwright-monaco.
  • Mentioning environment info: what Node.js / npm version do you use? Do you use them natively or via WSL? Does your project have a tsconfig.json file? If so, what are its contents?
  • Enabling Fixing Windows tests for this repo (which depends on those fixes in playwright-monaco fixes).

Also, does that change mean mdx won't always use my project's ts version?

Initially yes, but I built it with the idea in mind to support that later.

remcohaszing avatar Dec 30 '22 16:12 remcohaszing

Fixing Windows tests for playwright-monaco.

Yea! I'll give this a try in a few

Mentioning environment info: what Node.js / npm version do you use? Do you use them natively or via WSL? Does your project have a tsconfig.json file? If so, what are its contents?

It might be helpful to mention that I'm building the extension on Linux and installing it on Windows, I assumed vscode extensions were cross platform like that xd. When building on Linux, I'm using Node v16.18.1 and Yarn v1.22.19 On Windows, I'm running a global installation of Node v16.17.0 and npm v8.15.0 I'm gonna try and build the pr on Windows rn

Enabling Fixing Windows tests for this repo (which depends on those fixes in playwright-monaco fixes).

Yea I'll see about this after I give the playwright monaco tests a shot

Vap0r1ze avatar Dec 30 '22 16:12 Vap0r1ze

It absolutely shouldn’t matter which OS you use to build the extension! It just matters for local troubleshooting and debugging.

remcohaszing avatar Dec 30 '22 16:12 remcohaszing

As far as I’m concerned, this PR is ready. ~~CI is failing due to an azure PPA outage. I would love CI to pass though, given the impact of these changes. To anyone who has permissions (including myself): Feel free to retrigger whenever you feel like it.~~

remcohaszing avatar Jan 06 '23 14:01 remcohaszing

~~Something appears to go wrong with the VSCode integration. I’m investigating this.~~ Never mind, this wasn’t true.

remcohaszing avatar Jan 06 '23 14:01 remcohaszing

To dos after:

  • Go through “marketing” material, as in, examples, but also docs
  • Perhaps add tools like stylint for CSS in demos?
  • Lowercase readme.md, license?

Q: What are other things that should be checked / improved / added later?

wooorm avatar Jan 06 '23 16:01 wooorm

More todos:

  • #260
  • #261
  • Publish packages
  • Identify, test, and fix various corner cases
  • #262
  • #168
  • Fix Windows tests
  • #259
  • Identify and implement missing TypeScript features
  • #266
  • #264
  • Consider support for remark transformer plugins (remark-mdx-frontmatter introduces variables)
  • Consider support for rehype transformer plugins (rehype-mdx-title introduces a variable)
  • #267

I intend to create more detailed issues for these once this PR gets merged.

remcohaszing avatar Jan 06 '23 19:01 remcohaszing

IntelliSense is now released behind a flag. More info on how to try it out here: https://github.com/mdx-js/vscode-mdx/releases/tag/v1.1.0. And see also the announcement on Twitter: https://twitter.com/remcohaszing/status/1613910319805382657

remcohaszing avatar Jan 13 '23 15:01 remcohaszing

Amazing, thanks @remcohaszing 🙌 Long journey to get this to the state where it is now, kudos on that!

karlhorky avatar Jan 14 '23 17:01 karlhorky

I wanted to ask where the correct place to report issues is, because I ran into a first issue trying to parse MDX which uses JavaScript inside Front Matter, as below:

---
courseModules: [{ courseId: 3, slug: 'changes' }]
---

# Changes

...more content...

The error from tsMDX is:

Could not parse expression with acorn: Unexpected content after expression(tsMDX)

Screenshot:

Screenshot 2023-01-14 at 18 45 32

I guess it's possible that I'm also using MDX in an unexpected / incorrect way here, maybe there's something I need to change...

karlhorky avatar Jan 14 '23 17:01 karlhorky

@karlhorky Thanks for trying this out!

The issue tracker of this project is the right place to report. However, the issue you’re running into has already been reported: #266. The public interface for that feature requires some discussion though. I welcome any input in the discussion there.

remcohaszing avatar Jan 15 '23 20:01 remcohaszing