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

feat: allow to copy profile #2

Merged
merged 4 commits into from
Feb 7, 2024
Merged

feat: allow to copy profile #2

merged 4 commits into from
Feb 7, 2024

Conversation

Mara-Li
Copy link
Owner

@Mara-Li Mara-Li commented Feb 7, 2024

Summary by CodeRabbit

  • Nouvelles fonctionnalités
    • Ajout de la capacité à remplacer la copie native pour chaque vue séparément.
    • Introduction du concept de création de profils pour différents scénarios de copie.
    • Amélioration des paramètres pour les liens, les notes de bas de page, le markdown non conventionnel et les remplacements par expressions régulières.
    • Fourniture d'options pour la copie dans les vues de lecture et d'édition avec des fonctionnalités spécifiques.
  • Corrections de bugs
    • Noté des limitations liées aux problèmes de formatage et à la copie de Mathjax.
  • Documentation
    • Mise à jour des instructions d'installation et de développement pour le plugin.

Copy link

coderabbitai bot commented Feb 7, 2024

Walkthrough

Une mise à jour majeure a été réalisée, permettant une personnalisation avancée de la fonction de copie. Cette mise à jour introduit des profils pour différents scénarios de copie, des options améliorées pour la gestion des liens, des notes de bas de page, et plus encore. Elle offre également la possibilité de configurer la copie de manière distincte pour les vues de lecture et d'édition, tout en soulignant certaines limitations.

Changes

Fichier Résumé des changements
README.md Ajout de fonctionnalités de surcharge de copie, introduction de profils de copie, améliorations des paramètres, options de copie spécifiques, limitations, mise à jour des instructions.
src/main.ts Modification de la classe EnhancedCopy pour gérer différents scénarios basés sur la configuration des paramètres.
src/modal.ts Ajout de GlobalSettings, gestion des profileOptions, logique de surcharge dans EnhancedCopyViewModal.
src/settings.ts Mise à jour du nom par défaut, de l'icône, réorganisation de la structure de création des paramètres, ajout de styles et de méthodes pour les boutons.

"Dans le monde du code, des changements sont nés,
🐇 Avec agilité, CodeRabbit a sauté,
Profils et copies, désormais améliorés,
Célébrons ensemble, ce travail apprécié."

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share

Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit-tests for this file.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit tests for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository from git and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit tests.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • The JSON schema for the configuration file is available here.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json

CodeRabbit Discord Community

Join our Discord Community to get help, request features, and share feedback.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Status

Actionable comments generated: 7

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between e9e3def and eb07041.
Files ignored due to path filters (2)
  • src/i18n/locales/en.json is excluded by: !**/*.json
  • src/i18n/locales/fr.json is excluded by: !**/*.json
Files selected for processing (4)
  • README.md (5 hunks)
  • src/main.ts (1 hunks)
  • src/modal.ts (4 hunks)
  • src/settings.ts (2 hunks)
Additional comments: 10
README.md (4)
  • 26-26: L'ajout de commandes pour chaque mode de copie est une bonne pratique pour augmenter l'accessibilité et la personnalisation. Cependant, vérifiez l'impact sur les performances avec l'ajout de multiples commandes.
  • 51-58: Les options pour la gestion des liens et des notes de bas de page offrent une bonne flexibilité. Vérifiez que ces options sont bien documentées pour que les utilisateurs comprennent les implications de chaque choix.
  • 64-64: La gestion des markdowns non conventionnels est une bonne idée. Assurez-vous que les transformations sont cohérentes et ne perturbent pas la structure originale du texte copié.
  • 95-98: Les instructions d'installation sont claires et précises. Vérifiez que les liens vers BRAT et la page de release sont à jour et fonctionnels.
src/modal.ts (3)
  • 4-4: L'importation de GlobalSettings et l'utilisation de profileOptions pour la sélection déroulante sont bien intégrées. Assurez-vous que les options disponibles sont toujours synchronisées avec les profils existants.
  • 134-138: La construction des options de profil est bien pensée. Vérifiez que l'interface utilisateur gère correctement les cas où aucun profil n'est défini ou lorsque des noms de profil sont dupliqués.
  • 179-208: La logique de copie entre différents profils semble correcte. Assurez-vous que les tests couvrent tous les cas de figure possibles, notamment les transitions entre différents types de vues et profils.
src/main.ts (1)
  • 160-194: La restructuration des conditions pour separateHotkey et applyingTo améliore la lisibilité. Assurez-vous que les commandes ajoutées fonctionnent comme prévu dans les modes éditeur et lecture.
src/settings.ts (2)
  • 168-170: Le changement du nom par défaut en "profile" et de l'icône en "layers-2" est une bonne mise à jour pour la clarté. Vérifiez que ces changements sont cohérents dans toute l'interface utilisateur.
  • 318-331: L'ajout d'une classe et méthode pour gérer le style et la visibilité des boutons améliore la modularité. Vérifiez que cette approche est utilisée de manière cohérente dans tout le code.

## ⚙️ Settings

You can adjust the way the content is copied in the settings.

First, you need to set the view mode to use. You can choose between:

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La sélection entre les modes de vue (reading, editing, all) est une bonne fonctionnalité, mais assurez-vous que l'interface utilisateur rend clair à l'utilisateur quel mode est actuellement actif pour éviter toute confusion.

- Reading view (with checkCallback)
- Editing view
- Non markdown view (canvas, database-plugin...)

Finally, you can to choose to override the default copy (from menu and the <kbd>CTRL</kbd>/<kbd>⌘</kbd> + <kbd>C</kbd>). Pretty useful for mobile!

> [!Note]
> The default copy is disabled on canvas, so I advice you to use the command separator to set an hotkey/button for "other" view & use the default copy on markdown view (reading and LP/source mode).
> The default copy is disabled on canvas, so I advice you to use the command separator to set an hotkey/button for "other" view & use the default copy on markdown view (reading and LP/source mode).
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La note sur la désactivation de la copie par défaut sur le canvas est utile. Assurez-vous que cette information est bien visible dans l'interface utilisateur pour éviter toute confusion chez les utilisateurs.


The reading view and editing view have ~ the same settings, but you need to set them separately. It will allow having different copy settings for each view.

You can enable the overriding of native copy for each view, so it could be disabled for reading view and enabled for editing view (and vice versa).

You can create "profile", that will add a command (after reloadig Obsidian), so you can create a profile for copying on Discord and use it some times.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La création de "profil" pour ajouter une commande est une fonctionnalité intéressante. Assurez-vous que l'interface de gestion des profils est intuitive et fournit un feedback clair sur les actions réalisées (création, modification, suppression de profils).

- `Type to strong` : Convert all in blockquote and transform the type to bold: `> [!info]` will become `> **Info**` (à la GitHub Callout)
- `Simple blockquote` : Remove type, keep title and convert to blockquote.
- Other:
- Strict line breaks: Add two spaces at the end of each line
- Regex replacement: You can add more replacement to the copy with the button that will open a modal. Note that the replacement will be done **after all other changes**.
- Regex replacement: You can add more replacement to the copy with the button that will open a modal. Note that the replacement will be done **after all other changes**.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

L'option de remplacement regex est puissante mais peut être complexe pour certains utilisateurs. Considérez d'ajouter des exemples ou un guide d'utilisation dans la documentation.


## 📝 Limitations

- For a strange reason, the first line of a blockquote / list / callout is not selected totally properly as HTML. If you want to format only a part of this, you need to select the line before (or after). You can use "invisible" characters, `$~~$` for example.
- For a strange reason, the first line of a blockquote / list / callout is not selected totally properly as HTML. If you want to format only a part of this, you need to select the line before (or after). You can use "invisible" characters, `$~~$` for example.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Les limitations mentionnées sont importantes à connaître pour les utilisateurs. Assurez-vous que ces limitations sont clairement expliquées et que des solutions de contournement sont proposées si possible.

@@ -137,6 +138,7 @@
- [x] French

To add a translation:

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

L'ajout de traductions est une excellente initiative pour rendre le plugin accessible à un public plus large. Assurez-vous que le processus de contribution est bien documenté pour encourager la communauté à participer.

Comment on lines +304 to +316

new Setting(this.settingsPage)
.setName(i18next.t("hotkey.title"))
.setDesc(i18next.t("hotkey.desc"))
.addToggle((toggle) => {
toggle
.setValue(this.settings.separateHotkey)
.onChange(async (value) => {
this.settings.separateHotkey = value;
await this.plugin.saveSettings();
this.renderSettingsPage("global");
});
});
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La gestion des raccourcis clavier séparés est une fonctionnalité utile. Assurez-vous que l'interface utilisateur permet une configuration facile et intuitive de ces raccourcis.

@Mara-Li Mara-Li merged commit 7cf72fc into master Feb 7, 2024
2 checks passed
@Mara-Li Mara-Li deleted the copy-profile branch February 7, 2024 18:33
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

Successfully merging this pull request may close these issues.

1 participant