Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TODO List #1

Open
11 of 22 tasks
Jazzpirate opened this issue Oct 24, 2024 · 5 comments
Open
11 of 22 tasks

TODO List #1

Jazzpirate opened this issue Oct 24, 2024 · 5 comments
Assignees

Comments

@Jazzpirate
Copy link
Collaborator

Jazzpirate commented Oct 24, 2024

  • Images in Documents
  • What are Morphisms?
  • sTeX
    • Use CSS for things that should use CSS
    • multiple MathHub directories
  • Semantics Extraction
    • Ignore comments
  • LSP
    • Server
      • linting rules for various macros
    • VSCode Client
      • download archives
  • GitLab Integration
  • Build system
    • finished queue state
    • sandboxing
  • shtml-viewer
    • proper hovers
  • OMDoc rendering
  • proper (de)serialization of datastructures
    • => proper interlinking
  • git(lab) integration
@Jazzpirate Jazzpirate self-assigned this Oct 24, 2024
@kohlhase
Copy link
Member

kohlhase commented Jan 30, 2025

I would like the linter to warn me of overcommitted \importmodule{foo} or \usemodule{foo}: in the current situation none of the local declarations of module foo are used. Quick fix: replace \...module{foo} by all the imports of module foo (possibly changed to \usemodule).

@Jazzpirate
Copy link
Collaborator Author

I see some issues with this, in particular if we consider best practice to be to keep dependencies minimal. I'm almost sure that in the AI notes (at least in my rewrites of AI2), it is often the case that slides build on each other; not necessarily because a symbol of some module is actually used, but also because "that slide came before this one, so I know it already includes all the things I will need".
One thing I've already done there was to make a convenience module whose only reason to exist is to export quite a few other modules, so I don't have to have 10 importmodules at the beginning of each slide in some section. The latter is of course counter to "keeping dependencies minimal", but also quite convenient.
Which is to say: I would expect having such a warning to yield quite a few positives which may or may not be annoying if they're intentional (which they may often be).
I think we should clarify what best practices regarding imports, redundant imports, spurious imports etc. actually should be given various up- and downsides...

@kohlhase
Copy link
Member

kohlhase commented Jan 31, 2025

I agree with all you say, and let me answer some of the concerns above as a step towards "best practices".
Generally: when in doubt, I am for more information, then I can decide.

Also I probably meant the info (blue in VSCode) when I said "should warn me" above.

As for the convenience module, I would consider this as "good practice" to use that for writing (makes life easy as you say) and then when the dust of writing and using the first time has settled, then we can refine the convenience import to the minimal one, thus minimizing dependencies.

You also mention imports that "that slide came before this one, so I know it already includes all the things I will need". This is also something I see a lot, and I have been worrying about this (without coming to a specific conclusion or even doing something about it). I am wondering whether that should be be refactored into two properties:

  1. "this slide should come after that one because it systematically builds on it"
  2. "this module imports that module".

ad 1.: this seems to be a rethoric/didactic relation, and maybe we want to have a specific sTeX markup for this relation in the future.
ad 2. this is just the "convenience import" from above which could safely be refined.
I actually quite like this idea; especially, if the refactoring could be supported by the IDE.

@kohlhase
Copy link
Member

kohlhase commented Jan 31, 2025

BUT I just realize one Problem with my proposal. If we minimize the imports of one module, we might compromize all modules that import from it. This makes it a global operation rather than a local one. I wonder whether we should split the VSCode IDE into two. One with essentially just the linter (for all the local stuff) and a Curation IDE that does the global stuff like quickparse with an extended curation linter.

@Jazzpirate
Copy link
Collaborator Author

true - which reinforces my point from recently: I think redundant imports are good, actually; both because they make dependencies explicit and because it makes them more robust against import-refactoring of dependencies...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants