diff --git a/src/InteractiveRatingsPlugin.ts b/src/InteractiveRatingsPlugin.ts index 5a65541..b49b0d3 100644 --- a/src/InteractiveRatingsPlugin.ts +++ b/src/InteractiveRatingsPlugin.ts @@ -1,9 +1,9 @@ import { Plugin } from 'obsidian'; import { LOGGING_ENABLED } from './constants'; -import { ratingEditorExtension } from './editor-extension'; +import { ratingEditorExtension } from './editor-extension/ratingViewPlugin'; import { InteractiveRatingsSettings } from './types'; import { DEFAULT_SETTINGS, InteractiveRatingsSettingTab } from './settings'; -import { updateSymbolPatternsFromSettings } from './utils'; +import { updateSymbolPatternsFromSettings } from './utils/updateSymbolPatternsFromSettings'; export class InteractiveRatingsPlugin extends Plugin { settings: InteractiveRatingsSettings; @@ -47,4 +47,4 @@ export class InteractiveRatingsPlugin extends Plugin { updateSymbolPatterns(): void { updateSymbolPatternsFromSettings(this.settings); } -} +} \ No newline at end of file diff --git a/src/editor-extension/RatingWidget.ts b/src/editor-extension/RatingWidget.ts index 34f1722..d1ce105 100644 --- a/src/editor-extension/RatingWidget.ts +++ b/src/editor-extension/RatingWidget.ts @@ -1,5 +1,8 @@ import { EditorView, WidgetType } from "@codemirror/view"; -import { generateSymbolsStringForDisk, formatRatingText, getUnicodeCharLength, isFullOnlySymbol } from '../utils'; +import { generateSymbolsStringForDisk } from '../utils/generateSymbolsStringForDisk'; +import { formatRatingText } from '../utils/formatRatingText'; +import { getUnicodeCharLength } from '../utils/getUnicodeCharLength'; +import { isFullOnlySymbol } from '../utils/isFullOnlySymbol'; import { LOGGING_ENABLED } from '../constants'; import { RatingText } from '../types'; diff --git a/src/editor-extension/index.ts b/src/editor-extension/index.ts deleted file mode 100644 index 271af32..0000000 --- a/src/editor-extension/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -// Import the main plugin for use in the extension array -import { ratingViewPlugin } from './ratingViewPlugin'; - -// Export the main extension -export { ratingViewPlugin } from './ratingViewPlugin'; - -// Export additional components if needed -export { RatingWidget } from './RatingWidget'; -export { RatingMatch } from './RatingMatch'; - -// Export the extension array -export const ratingEditorExtension = [ratingViewPlugin]; \ No newline at end of file diff --git a/src/editor-extension/ratingViewPlugin.ts b/src/editor-extension/ratingViewPlugin.ts index c53fa68..5ac1bfa 100644 --- a/src/editor-extension/ratingViewPlugin.ts +++ b/src/editor-extension/ratingViewPlugin.ts @@ -1,7 +1,11 @@ import { EditorView, Decoration, DecorationSet, ViewPlugin, ViewUpdate } from "@codemirror/view"; import { RangeSetBuilder } from "@codemirror/state"; -import { generateSymbolRegexPatterns, getSymbolSetForPattern, calculateRating, parseRatingText } from '../ratings-parser'; -import { getUnicodeCharLength, isFullOnlySymbol } from '../utils'; +import { generateSymbolRegexPatterns } from '../ratings-parser/generateSymbolRegexPatterns'; +import { getSymbolSetForPattern } from '../ratings-parser/getSymbolSetForPattern'; +import { calculateRating } from '../ratings-parser/calculateRating'; +import { parseRatingText } from '../ratings-parser/parseRatingText'; +import { getUnicodeCharLength } from '../utils/getUnicodeCharLength'; +import { isFullOnlySymbol } from '../utils/isFullOnlySymbol'; import { LOGGING_ENABLED } from '../constants'; import { RatingMatch } from './RatingMatch'; import { RatingWidget } from './RatingWidget'; @@ -166,4 +170,7 @@ export const ratingViewPlugin = ViewPlugin.fromClass( { decorations: v => v.decorations } -); \ No newline at end of file +); + +// Export the extension array +export const ratingEditorExtension = [ratingViewPlugin]; \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index 9ad23f1..7341146 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,10 +2,30 @@ import { InteractiveRatingsPlugin } from './InteractiveRatingsPlugin'; // Re-export from core modules export * from './constants'; -export * from './utils'; export * from './types'; -export * from './ratings-parser'; -export * from './editor-extension'; + +// Re-export from utils +export { getUnicodeCharLength } from './utils/getUnicodeCharLength'; +export { getUnicodeSubstring } from './utils/getUnicodeSubstring'; +export { utf16ToUnicodePosition } from './utils/utf16ToUnicodePosition'; +export { isFullOnlySymbol } from './utils/isFullOnlySymbol'; +export { generateSymbolsString } from './utils/generateSymbolsString'; +export { generateSymbolsStringForDisk } from './utils/generateSymbolsStringForDisk'; +export { calculateNewRating } from './utils/calculateNewRating'; +export { formatRatingText } from './utils/formatRatingText'; +export { updateSymbolPatternsFromSettings } from './utils/updateSymbolPatternsFromSettings'; + +// Re-export from ratings-parser +export { parseRatingText } from './ratings-parser/parseRatingText'; +export { getSymbolSetForPattern } from './ratings-parser/getSymbolSetForPattern'; +export { calculateRating } from './ratings-parser/calculateRating'; +export { escapeRegexChar } from './ratings-parser/escapeRegexChar'; +export { generateSymbolRegexPatterns } from './ratings-parser/generateSymbolRegexPatterns'; + +// Re-export from editor-extension +export { ratingViewPlugin, ratingEditorExtension } from './editor-extension/ratingViewPlugin'; +export { RatingWidget } from './editor-extension/RatingWidget'; +export { RatingMatch } from './editor-extension/RatingMatch'; // Export the main plugin class export default InteractiveRatingsPlugin; \ No newline at end of file diff --git a/src/ratings-parser/index.ts b/src/ratings-parser/index.ts deleted file mode 100644 index f157e2a..0000000 --- a/src/ratings-parser/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -// Text parsing -export { parseRatingText } from './parseRatingText'; - -// Symbol matching -export { getSymbolSetForPattern } from './getSymbolSetForPattern'; - -// Rating calculation -export { calculateRating } from './calculateRating'; - -// Regex utilities -export { escapeRegexChar } from './escapeRegexChar'; -export { generateSymbolRegexPatterns } from './generateSymbolRegexPatterns'; \ No newline at end of file diff --git a/src/ratings-parser/parseRatingText.ts b/src/ratings-parser/parseRatingText.ts index 328474f..5d83ac6 100644 --- a/src/ratings-parser/parseRatingText.ts +++ b/src/ratings-parser/parseRatingText.ts @@ -1,6 +1,8 @@ import { LOGGING_ENABLED } from '../constants'; import { RatingText } from '../types'; -import { getUnicodeCharLength, getUnicodeSubstring, utf16ToUnicodePosition } from '../utils'; +import { getUnicodeCharLength } from '../utils/getUnicodeCharLength'; +import { getUnicodeSubstring } from '../utils/getUnicodeSubstring'; +import { utf16ToUnicodePosition } from '../utils/utf16ToUnicodePosition'; /** * Parse rating text from a line, including HTML comment formats with precedence diff --git a/src/utils/index.ts b/src/utils/index.ts deleted file mode 100644 index 6f91070..0000000 --- a/src/utils/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Unicode utilities -export { getUnicodeCharLength } from './getUnicodeCharLength'; -export { getUnicodeSubstring } from './getUnicodeSubstring'; -export { utf16ToUnicodePosition } from './utf16ToUnicodePosition'; - -// Symbol utilities -export { isFullOnlySymbol } from './isFullOnlySymbol'; -export { generateSymbolsString } from './generateSymbolsString'; -export { generateSymbolsStringForDisk } from './generateSymbolsStringForDisk'; - -// Rating calculation -export { calculateNewRating } from './calculateNewRating'; - -// Text formatting -export { formatRatingText } from './formatRatingText'; - -// Settings -export { updateSymbolPatternsFromSettings } from './updateSymbolPatternsFromSettings'; \ No newline at end of file