├── .gitignore
├── FocusTaskWatch
├── FocusTaskWatch Watch App
│ ├── Assets.xcassets
│ │ ├── AccentColor.colorset
│ │ │ └── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ └── focus-icon.png
│ │ └── Contents.json
│ ├── ContentView.swift
│ ├── FocusTaskWatchApp.swift
│ ├── Models
│ │ ├── FocusModel+NotificationExtension.swift
│ │ ├── FocusModel+RestoreDataExtension.swift
│ │ ├── FocusModel+StateMachineExtension.swift
│ │ ├── FocusModel.swift
│ │ └── TaskItem.swift
│ ├── Notifications
│ │ └── FocusNotifications.swift
│ ├── Preview Content
│ │ └── Preview Assets.xcassets
│ │ │ └── Contents.json
│ └── Views
│ │ ├── ControlsView.swift
│ │ ├── FocusGaugeStyle.swift
│ │ ├── FocusPagesView.swift
│ │ ├── FocusSuccessView.swift
│ │ ├── FocusTimelineView.swift
│ │ ├── FocusTimerView.swift
│ │ ├── MainView.swift
│ │ ├── MilestoneProgressView.swift
│ │ ├── NotificationView.swift
│ │ ├── RuningTaskView.swift
│ │ ├── StartPageView.swift
│ │ ├── TaskDetailView.swift
│ │ ├── TaskRowView.swift
│ │ └── TaskView.swift
├── FocusTaskWatch Watch AppTests
│ └── FocusTaskWatch_Watch_AppTests.swift
├── FocusTaskWatch Watch AppUITests
│ ├── FocusTaskWatch_Watch_AppUITests.swift
│ └── FocusTaskWatch_Watch_AppUITestsLaunchTests.swift
├── FocusTaskWatch-Watch-App-Info.plist
├── FocusTaskWatch.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── swiftpm
│ │ │ │ └── Package.resolved
│ │ └── xcuserdata
│ │ │ └── feint.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── feint.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── README.md
├── en.lproj
│ └── Localizable.strings
└── zh-Hans.lproj
│ └── Localizable.strings
├── QRCodeGenerator
├── QRCodeGenerator.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── swiftpm
│ │ │ │ └── Package.resolved
│ │ └── xcuserdata
│ │ │ └── feint.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── feint.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── QRCodeGenerator
│ ├── Assets.xcassets
│ │ ├── AccentColor.colorset
│ │ │ └── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ └── qrcode.png
│ │ └── Contents.json
│ ├── ColorPanelView.swift
│ ├── ContentView.swift
│ ├── Extensions
│ │ ├── ArrayExtensions.swift
│ │ └── ColorExtension.swift
│ ├── Modifiers
│ │ ├── FeintStyleModifier.swift
│ │ └── ThemeViews.swift
│ ├── PhotoImage.swift
│ ├── Preview Content
│ │ └── Preview Assets.xcassets
│ │ │ └── Contents.json
│ ├── QRCodeGeneratorApp.swift
│ ├── QrcodeView.swift
│ └── ToolsGroupView.swift
├── README.md
├── en.lproj
│ └── Localizable.strings
└── zh-Hans.lproj
│ └── Localizable.strings
├── README.md
├── SimpleBiLi
├── SimpleBiLi.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcuserdata
│ │ │ └── feint.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── feint.xcuserdatad
│ │ ├── xcdebugger
│ │ └── Breakpoints_v2.xcbkptlist
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── SimpleBiLi
│ ├── Assets.xcassets
│ │ ├── 666.imageset
│ │ │ ├── 666.png
│ │ │ └── Contents.json
│ │ ├── AccentColor.colorset
│ │ │ └── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── ContentView.swift
│ ├── Fetcher
│ │ ├── BiliFetcher.swift
│ │ └── VideoFetcher.swift
│ ├── Libs
│ │ └── SwiftyJSON.swift
│ ├── Model
│ │ ├── SearchSuggest.swift
│ │ ├── SidebarItem.swift
│ │ ├── SidebarSection.swift
│ │ ├── Tag.swift
│ │ ├── UpInfo.swift
│ │ ├── VideoDetail.swift
│ │ ├── VideoItem.swift
│ │ ├── VideoList.swift
│ │ └── dto
│ │ │ ├── OwnerDTO.swift
│ │ │ ├── dynamic
│ │ │ ├── VideoDynamicArchiveDTO.swift
│ │ │ ├── VideoDynamicDataDTO.swift
│ │ │ ├── VideoDynamicPageDTO.swift
│ │ │ └── VideoDynamicRespDTO.swift
│ │ │ ├── info
│ │ │ ├── VideoDetailDataDTO.swift
│ │ │ ├── VideoDetailRespDTO.swift
│ │ │ └── VideoRecRespDTO.swift
│ │ │ ├── player
│ │ │ ├── DurlDTO.swift
│ │ │ ├── VideoPlayDataDTO.swift
│ │ │ └── VideoPlayRespDTO.swift
│ │ │ └── search
│ │ │ ├── SearchResultRespDTO.swift
│ │ │ └── SearchSuggestRespDTO.swift
│ ├── Preview Content
│ │ └── Preview Assets.xcassets
│ │ │ └── Contents.json
│ ├── SimpleBiLi.entitlements
│ ├── SimpleBiLiApp.swift
│ ├── Utils
│ │ └── UrlUtils.swift
│ └── Views
│ │ ├── RegionView.swift
│ │ ├── SidebarView.swift
│ │ ├── VideoCardView.swift
│ │ ├── VideoInfoView.swift
│ │ ├── VideoView.swift
│ │ └── ViedoDetailView.swift
├── SimpleBiLiTests
│ └── SimpleBiLiTests.swift
└── SimpleBiLiUITests
│ ├── SimpleBiLiUITests.swift
│ └── SimpleBiLiUITestsLaunchTests.swift
├── chrome-plugin-bilibili
├── .gitignore
├── README.md
├── chrome-plugin-bilibili.zip
├── config
│ ├── paths.js
│ ├── webpack.common.js
│ └── webpack.config.js
├── package-lock.json
├── package.json
├── public
│ ├── icons
│ │ ├── icon_128.png
│ │ ├── icon_16.png
│ │ ├── icon_32.png
│ │ └── icon_48.png
│ ├── manifest.json
│ ├── popup-o.css
│ └── popup.html
├── quickstart.md
├── src
│ ├── accordion.js
│ ├── background.js
│ ├── cinemaMode.js
│ ├── default.js
│ ├── iosSwitch.js
│ ├── keywordFilter.js
│ ├── localCollect.js
│ ├── popup.css
│ ├── popup.js
│ ├── searchMode.js
│ └── storage.js
└── tailwind.config.js
├── chrome-plugin-starter
├── .gitignore
├── README.md
├── config
│ ├── paths.js
│ ├── webpack.common.js
│ └── webpack.config.js
├── package-lock.json
├── package.json
├── public
│ ├── icons
│ │ ├── icon_128.png
│ │ ├── icon_16.png
│ │ ├── icon_32.png
│ │ └── icon_48.png
│ ├── manifest.json
│ ├── popup.css
│ └── popup.html
├── quickstart.md
├── size-plugin.json
└── src
│ ├── background.js
│ ├── contentScript.js
│ └── popup.js
├── code-search
├── .gitignore
├── Cargo.lock
├── Cargo.toml
├── README.md
└── src
│ ├── lang.rs
│ └── main.rs
├── dTools
├── .gitignore
├── .vscode
│ └── extensions.json
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── public
│ ├── tauri.svg
│ └── vite.svg
├── qclipboard.html
├── src-tauri
│ ├── .gitignore
│ ├── Cargo.lock
│ ├── Cargo.toml
│ ├── build.rs
│ ├── icons
│ │ ├── 128x128.png
│ │ ├── 128x128@2x.png
│ │ ├── 32x32.png
│ │ ├── Square107x107Logo.png
│ │ ├── Square142x142Logo.png
│ │ ├── Square150x150Logo.png
│ │ ├── Square284x284Logo.png
│ │ ├── Square30x30Logo.png
│ │ ├── Square310x310Logo.png
│ │ ├── Square44x44Logo.png
│ │ ├── Square71x71Logo.png
│ │ ├── Square89x89Logo.png
│ │ ├── StoreLogo.png
│ │ ├── icon.icns
│ │ ├── icon.ico
│ │ └── icon.png
│ ├── src
│ │ └── main.rs
│ └── tauri.conf.json
├── src
│ ├── assets
│ │ ├── js
│ │ │ ├── db.js
│ │ │ ├── init.js
│ │ │ ├── shortcuts.js
│ │ │ ├── styles.js
│ │ │ └── tools.js
│ │ └── vue.svg
│ ├── components
│ │ ├── ClipCard.vue
│ │ ├── Clipboard.vue
│ │ ├── ColorCard.vue
│ │ └── NomalPanel.vue
│ └── windows
│ │ ├── index
│ │ ├── App.vue
│ │ ├── main.js
│ │ ├── pages
│ │ │ ├── ClipHistory.vue
│ │ │ ├── CodeTranslator.vue
│ │ │ └── ColorSeeSee.vue
│ │ └── router.js
│ │ ├── qclipboard
│ │ ├── App.vue
│ │ ├── main.js
│ │ └── router.js
│ │ └── style.css
├── vite.config.js
└── vue.config.js
├── dynamic-sort
├── .gitignore
├── Cargo.lock
├── Cargo.toml
└── src
│ ├── main.rs
│ └── sort.rs
├── game-of-life
├── Cargo.lock
├── Cargo.toml
└── src
│ ├── basic.rs
│ └── main.rs
├── godot-platform-game
├── .gitattributes
├── .gitignore
├── addons
│ ├── 2d_essentials
│ │ ├── autoload
│ │ │ ├── achievements
│ │ │ │ ├── achievements.gd
│ │ │ │ └── achievements.tscn
│ │ │ ├── audio
│ │ │ │ └── audio.gd
│ │ │ ├── dotenv
│ │ │ │ └── godotenv.gd
│ │ │ ├── helpers.gd
│ │ │ └── scene_transitions
│ │ │ │ ├── scene_transition.gd
│ │ │ │ └── scene_transitioner.gd
│ │ ├── camera
│ │ │ └── shake_camera_component.gd
│ │ ├── icons
│ │ │ ├── Godot-2D-Essentials-Title.png
│ │ │ ├── Godot-2D-Essentials-Title.png.import
│ │ │ ├── arrow_clockwise.svg
│ │ │ ├── arrow_clockwise.svg.import
│ │ │ ├── arrow_cross.svg
│ │ │ ├── arrow_cross.svg.import
│ │ │ ├── arrow_diagonal.png
│ │ │ ├── arrow_diagonal.png.import
│ │ │ ├── bow.png
│ │ │ ├── bow.png.import
│ │ │ ├── menu_grid.png
│ │ │ ├── menu_grid.png.import
│ │ │ ├── share2.png
│ │ │ ├── share2.png.import
│ │ │ ├── suit_hearts.svg
│ │ │ ├── suit_hearts.svg.import
│ │ │ ├── target.png
│ │ │ ├── target.png.import
│ │ │ ├── video.png
│ │ │ └── video.png.import
│ │ ├── movement
│ │ │ ├── motion
│ │ │ │ ├── godot_essentials_motion.gd
│ │ │ │ ├── grid_movement_component.gd
│ │ │ │ ├── platformer_movement_component.gd
│ │ │ │ └── top_down_movement_component.gd
│ │ │ ├── oscilator_component.gd
│ │ │ ├── projectile_component.gd
│ │ │ └── rotator_component.gd
│ │ ├── patterns
│ │ │ └── finite_state_machine
│ │ │ │ ├── finite_state_machine.gd
│ │ │ │ └── state.gd
│ │ ├── plugin.cfg
│ │ ├── plugin.gd
│ │ ├── survivability
│ │ │ └── health_component.gd
│ │ └── update
│ │ │ ├── download_update_panel.gd
│ │ │ ├── download_update_panel.tscn
│ │ │ ├── failed_download_panel.tscn
│ │ │ ├── upd2C25.tmp
│ │ │ ├── upd39C0.tmp
│ │ │ ├── update_plugin_button.gd
│ │ │ ├── update_plugin_button.tscn
│ │ │ └── updated_version_panel.tscn
│ ├── dialogic
│ │ ├── Editor
│ │ │ ├── CharacterEditor
│ │ │ │ ├── char_edit_p_section_exports.gd
│ │ │ │ ├── char_edit_p_section_exports.tscn
│ │ │ │ ├── char_edit_p_section_layout.gd
│ │ │ │ ├── char_edit_p_section_layout.tscn
│ │ │ │ ├── char_edit_p_section_main.gd
│ │ │ │ ├── char_edit_p_section_main.tscn
│ │ │ │ ├── char_edit_section_general.gd
│ │ │ │ ├── char_edit_section_general.tscn
│ │ │ │ ├── char_edit_section_portraits.gd
│ │ │ │ ├── char_edit_section_portraits.tscn
│ │ │ │ ├── character_editor.gd
│ │ │ │ ├── character_editor.tscn
│ │ │ │ ├── character_editor_main_settings_section.gd
│ │ │ │ ├── character_editor_portrait_settings_section.gd
│ │ │ │ └── character_editor_portrait_tree.gd
│ │ │ ├── Common
│ │ │ │ ├── DCSS.gd
│ │ │ │ ├── ReferenceManager_AddReplacementPanel.gd
│ │ │ │ ├── TitleBgStylebox.tres
│ │ │ │ ├── broken_reference_manager.tscn
│ │ │ │ ├── hint_tooltip_icon.gd
│ │ │ │ ├── hint_tooltip_icon.tscn
│ │ │ │ ├── reference_manager.gd
│ │ │ │ ├── reference_manager_window.gd
│ │ │ │ ├── side_bar.tscn
│ │ │ │ ├── sidebar.gd
│ │ │ │ └── toolbar.gd
│ │ │ ├── Events
│ │ │ │ ├── BranchEnd.gd
│ │ │ │ ├── BranchEnd.tscn
│ │ │ │ ├── EventBlock
│ │ │ │ │ ├── event_block.gd
│ │ │ │ │ ├── event_block.tscn
│ │ │ │ │ └── event_right_click_menu.gd
│ │ │ │ ├── Fields
│ │ │ │ │ ├── Array.gd
│ │ │ │ │ ├── Array.tscn
│ │ │ │ │ ├── ArrayValue.gd
│ │ │ │ │ ├── ArrayValue.tscn
│ │ │ │ │ ├── Bool.gd
│ │ │ │ │ ├── Bool.tscn
│ │ │ │ │ ├── BoolButton.gd
│ │ │ │ │ ├── BoolButton.tscn
│ │ │ │ │ ├── ComplexPicker.gd
│ │ │ │ │ ├── ComplexPicker.tscn
│ │ │ │ │ ├── ConditionPicker.gd
│ │ │ │ │ ├── ConditionPicker.tscn
│ │ │ │ │ ├── FilePicker.gd
│ │ │ │ │ ├── FilePicker.tscn
│ │ │ │ │ ├── Label.gd
│ │ │ │ │ ├── Label.tscn
│ │ │ │ │ ├── MultilineText.gd
│ │ │ │ │ ├── MultilineText.tscn
│ │ │ │ │ ├── Number.gd
│ │ │ │ │ ├── Number.tscn
│ │ │ │ │ ├── OptionSelector.gd
│ │ │ │ │ ├── OptionSelector.tscn
│ │ │ │ │ ├── SinglelineText.gd
│ │ │ │ │ ├── SinglelineText.tscn
│ │ │ │ │ ├── Vector2.gd
│ │ │ │ │ └── Vector2.tscn
│ │ │ │ └── styles
│ │ │ │ │ ├── InputFieldsStyle.tres
│ │ │ │ │ ├── ResourceMenuHover.tres
│ │ │ │ │ ├── ResourceMenuNormal.tres
│ │ │ │ │ ├── ResourceMenuPanelBackground.tres
│ │ │ │ │ ├── SectionPanel.tres
│ │ │ │ │ ├── SettingsFieldBackground.tres
│ │ │ │ │ ├── SimpleButtonHover.tres
│ │ │ │ │ ├── SimpleButtonNormal.tres
│ │ │ │ │ ├── TextBackground.tres
│ │ │ │ │ ├── selected_styleboxflat.tres
│ │ │ │ │ └── unselected_stylebox.tres
│ │ │ ├── HomePage
│ │ │ │ ├── home_page.gd
│ │ │ │ ├── home_page.tscn
│ │ │ │ ├── icon_bg.png
│ │ │ │ ├── icon_bg.png.import
│ │ │ │ └── tips.txt
│ │ │ ├── Images
│ │ │ │ ├── Dropdown
│ │ │ │ │ ├── default.svg
│ │ │ │ │ ├── default.svg.import
│ │ │ │ │ ├── divide.svg
│ │ │ │ │ ├── divide.svg.import
│ │ │ │ │ ├── join.svg
│ │ │ │ │ ├── join.svg.import
│ │ │ │ │ ├── leave.svg
│ │ │ │ │ ├── leave.svg.import
│ │ │ │ │ ├── minus.svg
│ │ │ │ │ ├── minus.svg.import
│ │ │ │ │ ├── multiply.svg
│ │ │ │ │ ├── multiply.svg.import
│ │ │ │ │ ├── plus.svg
│ │ │ │ │ ├── plus.svg.import
│ │ │ │ │ ├── set.svg
│ │ │ │ │ ├── set.svg.import
│ │ │ │ │ ├── update.svg
│ │ │ │ │ └── update.svg.import
│ │ │ │ ├── Pieces
│ │ │ │ │ ├── add-folder.svg
│ │ │ │ │ ├── add-folder.svg.import
│ │ │ │ │ ├── closed-icon.svg
│ │ │ │ │ ├── closed-icon.svg.import
│ │ │ │ │ ├── expand-icon.svg
│ │ │ │ │ ├── expand-icon.svg.import
│ │ │ │ │ ├── open-icon.svg
│ │ │ │ │ ├── open-icon.svg.import
│ │ │ │ │ ├── variable.svg
│ │ │ │ │ ├── variable.svg.import
│ │ │ │ │ ├── variable_icon.png
│ │ │ │ │ ├── variable_icon.png.import
│ │ │ │ │ ├── warning.svg
│ │ │ │ │ └── warning.svg.import
│ │ │ │ ├── Resources
│ │ │ │ │ ├── character.svg
│ │ │ │ │ ├── character.svg.import
│ │ │ │ │ ├── icon_character.png
│ │ │ │ │ ├── icon_character.png.import
│ │ │ │ │ ├── portrait.svg
│ │ │ │ │ └── portrait.svg.import
│ │ │ │ ├── Toolbar
│ │ │ │ │ ├── add-character.svg
│ │ │ │ │ ├── add-character.svg.import
│ │ │ │ │ ├── add-timeline.svg
│ │ │ │ │ └── add-timeline.svg.import
│ │ │ │ ├── Unknown.png
│ │ │ │ ├── Unknown.png.import
│ │ │ │ ├── dialogic-logo.svg
│ │ │ │ ├── dialogic-logo.svg.import
│ │ │ │ ├── plugin-icon.svg
│ │ │ │ ├── plugin-icon.svg.import
│ │ │ │ ├── preview_character.png
│ │ │ │ ├── preview_character.png.import
│ │ │ │ ├── preview_character_speaker.png
│ │ │ │ └── preview_character_speaker.png.import
│ │ │ ├── Settings
│ │ │ │ ├── HintLabelStylingScript.gd
│ │ │ │ ├── settings_editor.gd
│ │ │ │ ├── settings_editor.tscn
│ │ │ │ ├── settings_general.gd
│ │ │ │ ├── settings_general.tscn
│ │ │ │ ├── settings_modules.gd
│ │ │ │ ├── settings_modules.tscn
│ │ │ │ ├── settings_page.gd
│ │ │ │ ├── settings_translation.gd
│ │ │ │ └── settings_translation.tscn
│ │ │ ├── Theme
│ │ │ │ ├── MainTheme.tres
│ │ │ │ └── PickerTheme.tres
│ │ │ ├── TimelineEditor
│ │ │ │ ├── TextEditor
│ │ │ │ │ ├── CodeCompletionHelper.gd
│ │ │ │ │ ├── syntax_highlighter.gd
│ │ │ │ │ ├── timeline_editor_text.gd
│ │ │ │ │ └── timeline_editor_text.tscn
│ │ │ │ ├── VisualEditor
│ │ │ │ │ ├── AddEventButton.gd
│ │ │ │ │ ├── AddEventButton.tscn
│ │ │ │ │ ├── TimelineArea.gd
│ │ │ │ │ ├── timeline_editor_visual.gd
│ │ │ │ │ └── timeline_editor_visual.tscn
│ │ │ │ ├── test_timeline_scene.gd
│ │ │ │ ├── test_timeline_scene.tscn
│ │ │ │ ├── timeline_editor.gd
│ │ │ │ └── timeline_editor.tscn
│ │ │ ├── dialogic_editor.gd
│ │ │ ├── directory_holder.gd
│ │ │ ├── editor_main.gd
│ │ │ ├── editor_main.tscn
│ │ │ └── editors_manager.gd
│ │ ├── Example Assets
│ │ │ ├── Fonts
│ │ │ │ ├── Roboto-Bold.ttf
│ │ │ │ ├── Roboto-Bold.ttf.import
│ │ │ │ ├── Roboto-Italic.ttf
│ │ │ │ ├── Roboto-Italic.ttf.import
│ │ │ │ ├── Roboto-Regular.ttf
│ │ │ │ └── Roboto-Regular.ttf.import
│ │ │ ├── already_read_indicator.gd
│ │ │ ├── backgrounds
│ │ │ │ ├── BubbleEnd.png
│ │ │ │ ├── BubbleEnd.png.import
│ │ │ │ ├── new-default-dialog.png.import
│ │ │ │ ├── rpg_box.webp
│ │ │ │ └── rpg_box.webp.import
│ │ │ ├── default_event.gd
│ │ │ ├── next-indicator
│ │ │ │ ├── next-indicator-dialogic-1.png
│ │ │ │ ├── next-indicator-dialogic-1.png.import
│ │ │ │ ├── next-indicator.png
│ │ │ │ └── next-indicator.png.import
│ │ │ ├── portraits
│ │ │ │ ├── Antonio
│ │ │ │ │ ├── pl5 blink.png
│ │ │ │ │ ├── pl5 blink.png.import
│ │ │ │ │ ├── pl5 doubt.png
│ │ │ │ │ ├── pl5 doubt.png.import
│ │ │ │ │ ├── pl5 hate.png
│ │ │ │ │ ├── pl5 hate.png.import
│ │ │ │ │ ├── pl5 plot.png
│ │ │ │ │ ├── pl5 plot.png.import
│ │ │ │ │ ├── pl5 sad.png
│ │ │ │ │ ├── pl5 sad.png.import
│ │ │ │ │ ├── pl5 scoff.png
│ │ │ │ │ ├── pl5 scoff.png.import
│ │ │ │ │ ├── pl5 shy.png
│ │ │ │ │ ├── pl5 shy.png.import
│ │ │ │ │ ├── pl5 surprise.png
│ │ │ │ │ ├── pl5 surprise.png.import
│ │ │ │ │ ├── pl5.png
│ │ │ │ │ └── pl5.png.import
│ │ │ │ ├── CustomPortrait_AnimatedSprite.gd
│ │ │ │ ├── CustomPortrait_AnimatedSprite.tscn
│ │ │ │ ├── CustomPortrait_FaceAtlas.gd
│ │ │ │ ├── CustomPortrait_FaceAtlas.tscn
│ │ │ │ ├── Jane
│ │ │ │ │ ├── pl3 avoid.png
│ │ │ │ │ ├── pl3 avoid.png.import
│ │ │ │ │ ├── pl3 blink.png
│ │ │ │ │ ├── pl3 blink.png.import
│ │ │ │ │ ├── pl3 concept.png
│ │ │ │ │ ├── pl3 concept.png.import
│ │ │ │ │ ├── pl3 confusion.png
│ │ │ │ │ ├── pl3 confusion.png.import
│ │ │ │ │ ├── pl3 doubt.png
│ │ │ │ │ ├── pl3 doubt.png.import
│ │ │ │ │ ├── pl3 happy.png
│ │ │ │ │ ├── pl3 happy.png.import
│ │ │ │ │ ├── pl3 plot.png
│ │ │ │ │ ├── pl3 plot.png.import
│ │ │ │ │ ├── pl3 sad.png
│ │ │ │ │ ├── pl3 sad.png.import
│ │ │ │ │ ├── pl3 shy.png
│ │ │ │ │ ├── pl3 shy.png.import
│ │ │ │ │ ├── pl3 surprise.png
│ │ │ │ │ └── pl3 surprise.png.import
│ │ │ │ ├── Portrait1.png
│ │ │ │ ├── Portrait1.png.import
│ │ │ │ ├── Portrait2.png
│ │ │ │ ├── Portrait2.png.import
│ │ │ │ ├── Princess
│ │ │ │ │ ├── anger.png
│ │ │ │ │ ├── anger.png.import
│ │ │ │ │ ├── frown.png
│ │ │ │ │ ├── frown.png.import
│ │ │ │ │ ├── joy.png
│ │ │ │ │ ├── joy.png.import
│ │ │ │ │ ├── neutral.png
│ │ │ │ │ ├── neutral.png.import
│ │ │ │ │ ├── princess_blank.png
│ │ │ │ │ ├── princess_blank.png.import
│ │ │ │ │ ├── shock.png
│ │ │ │ │ ├── shock.png.import
│ │ │ │ │ ├── smile.png
│ │ │ │ │ └── smile.png.import
│ │ │ │ └── rpg_portraits
│ │ │ │ │ ├── base1.png
│ │ │ │ │ ├── base1.png.import
│ │ │ │ │ ├── base2.png
│ │ │ │ │ ├── base2.png.import
│ │ │ │ │ ├── base3.png
│ │ │ │ │ ├── base3.png.import
│ │ │ │ │ ├── base4.png
│ │ │ │ │ └── base4.png.import
│ │ │ └── sound-effects
│ │ │ │ ├── LICENSE.txt
│ │ │ │ ├── typing1.wav
│ │ │ │ ├── typing1.wav.import
│ │ │ │ ├── typing2.wav
│ │ │ │ ├── typing2.wav.import
│ │ │ │ ├── typing3.wav
│ │ │ │ ├── typing3.wav.import
│ │ │ │ ├── typing4.wav
│ │ │ │ ├── typing4.wav.import
│ │ │ │ ├── typing5.wav
│ │ │ │ └── typing5.wav.import
│ │ ├── Modules
│ │ │ ├── Audio
│ │ │ │ ├── event_music.gd
│ │ │ │ ├── event_sound.gd
│ │ │ │ ├── icon_music.png
│ │ │ │ ├── icon_music.png.import
│ │ │ │ ├── icon_sound.png
│ │ │ │ ├── icon_sound.png.import
│ │ │ │ ├── index.gd
│ │ │ │ └── subsystem_audio.gd
│ │ │ ├── Background
│ │ │ │ ├── default_background.gd
│ │ │ │ ├── default_background.tscn
│ │ │ │ ├── dialogic_background.gd
│ │ │ │ ├── event_background.gd
│ │ │ │ ├── icon.png
│ │ │ │ ├── icon.png.import
│ │ │ │ ├── index.gd
│ │ │ │ ├── node_background_holder.gd
│ │ │ │ └── subsystem_backgrounds.gd
│ │ │ ├── CallNode
│ │ │ │ ├── event_call_node.gd
│ │ │ │ ├── icon.png
│ │ │ │ ├── icon.png.import
│ │ │ │ └── index.gd
│ │ │ ├── Character
│ │ │ │ ├── DefaultAnimations
│ │ │ │ │ ├── bounce.gd
│ │ │ │ │ ├── bounce_in.gd
│ │ │ │ │ ├── bounce_out.gd
│ │ │ │ │ ├── fade_in_up.gd
│ │ │ │ │ ├── fade_out_down.gd
│ │ │ │ │ ├── heartbeat.gd
│ │ │ │ │ ├── instant_in_or_out.gd
│ │ │ │ │ ├── shake_x.gd
│ │ │ │ │ ├── shake_y.gd
│ │ │ │ │ ├── slide_in_down.gd
│ │ │ │ │ ├── slide_in_left.gd
│ │ │ │ │ ├── slide_in_right.gd
│ │ │ │ │ ├── slide_in_up.gd
│ │ │ │ │ ├── slide_out_down.gd
│ │ │ │ │ ├── slide_out_left.gd
│ │ │ │ │ ├── slide_out_right.gd
│ │ │ │ │ ├── slide_out_up.gd
│ │ │ │ │ ├── tada.gd
│ │ │ │ │ ├── zoom_in.gd
│ │ │ │ │ ├── zoom_in_center.gd
│ │ │ │ │ ├── zoom_out.gd
│ │ │ │ │ └── zoom_out_center.gd
│ │ │ │ ├── class_dialogic_animation.gd
│ │ │ │ ├── default_portrait.gd
│ │ │ │ ├── default_portrait.tscn
│ │ │ │ ├── dialogic_portrait.gd
│ │ │ │ ├── event_character.gd
│ │ │ │ ├── event_position.gd
│ │ │ │ ├── icon.png.import
│ │ │ │ ├── icon_character.png
│ │ │ │ ├── icon_character.png.import
│ │ │ │ ├── icon_position.png
│ │ │ │ ├── icon_position.png.import
│ │ │ │ ├── index.gd
│ │ │ │ ├── node_portrait_container.gd
│ │ │ │ ├── preview_character.tres
│ │ │ │ ├── settings_portraits.gd
│ │ │ │ ├── settings_portraits.tscn
│ │ │ │ ├── subsystem_portraits.gd
│ │ │ │ ├── update_mirror.svg
│ │ │ │ ├── update_mirror.svg.import
│ │ │ │ ├── update_portrait.svg
│ │ │ │ ├── update_portrait.svg.import
│ │ │ │ ├── update_position.svg
│ │ │ │ ├── update_position.svg.import
│ │ │ │ ├── update_z_index.svg
│ │ │ │ └── update_z_index.svg.import
│ │ │ ├── Choice
│ │ │ │ ├── event_choice.gd
│ │ │ │ ├── icon.svg
│ │ │ │ ├── icon.svg.import
│ │ │ │ ├── index.gd
│ │ │ │ ├── node_button_sound.gd
│ │ │ │ ├── node_choice_button.gd
│ │ │ │ ├── settings_choices.gd
│ │ │ │ ├── settings_choices.tscn
│ │ │ │ ├── subsystem_choices.gd
│ │ │ │ ├── ui_choice_end.gd
│ │ │ │ └── ui_choice_end.tscn
│ │ │ ├── Comment
│ │ │ │ ├── event_comment.gd
│ │ │ │ ├── icon.png
│ │ │ │ ├── icon.png.import
│ │ │ │ └── index.gd
│ │ │ ├── Condition
│ │ │ │ ├── event_condition.gd
│ │ │ │ ├── icon.svg
│ │ │ │ ├── icon.svg.import
│ │ │ │ ├── index.gd
│ │ │ │ ├── ui_condition_end.gd
│ │ │ │ └── ui_condition_end.tscn
│ │ │ ├── Converter
│ │ │ │ ├── custom_event_converter.gd
│ │ │ │ ├── icon.png.import
│ │ │ │ ├── index.gd
│ │ │ │ ├── settings_converter.gd
│ │ │ │ └── settings_converter.tscn
│ │ │ ├── Core
│ │ │ │ ├── event_end_branch.gd
│ │ │ │ ├── icon.png
│ │ │ │ ├── icon.png.import
│ │ │ │ ├── index.gd
│ │ │ │ ├── subsystem_animation.gd
│ │ │ │ └── subsystem_expression.gd
│ │ │ ├── DefaultLayouts
│ │ │ │ ├── Default
│ │ │ │ │ ├── DialogicDefaultLayout.gd
│ │ │ │ │ ├── DialogicDefaultLayout.tscn
│ │ │ │ │ ├── ExampleGlossaryPopup.gd
│ │ │ │ │ ├── animations.gd
│ │ │ │ │ ├── autoadvance_indicator.gd
│ │ │ │ │ ├── preview.png
│ │ │ │ │ ├── preview.png.import
│ │ │ │ │ └── style.cfg
│ │ │ │ ├── ExampleHistoryItem.gd
│ │ │ │ ├── ExampleHistoryItem.tscn
│ │ │ │ ├── ExampleHistoryScene.gd
│ │ │ │ ├── ExampleHistoryScene.tscn
│ │ │ │ ├── HideWithChild.gd
│ │ │ │ ├── RPG_BoxPortrait
│ │ │ │ │ ├── DialogicRPGLayout.gd
│ │ │ │ │ ├── DialogicRPGLayout.tscn
│ │ │ │ │ ├── preview.png
│ │ │ │ │ ├── preview.png.import
│ │ │ │ │ └── style.cfg
│ │ │ │ ├── TextBubble
│ │ │ │ │ ├── DialogicTextBubbleLayout.gd
│ │ │ │ │ ├── DialogicTextBubbleLayout.tscn
│ │ │ │ │ ├── TextBubble.gd
│ │ │ │ │ ├── TextBubble.tscn
│ │ │ │ │ ├── preview.png
│ │ │ │ │ ├── preview.png.import
│ │ │ │ │ ├── speech_bubble.gdshader
│ │ │ │ │ └── style.cfg
│ │ │ │ └── index.gd
│ │ │ ├── End
│ │ │ │ ├── event_end.gd
│ │ │ │ ├── icon.png
│ │ │ │ ├── icon.png.import
│ │ │ │ └── index.gd
│ │ │ ├── Glossary
│ │ │ │ ├── add-glossary.svg
│ │ │ │ ├── add-glossary.svg.import
│ │ │ │ ├── event_glossary.gd
│ │ │ │ ├── glossary_editor.gd
│ │ │ │ ├── glossary_editor.tscn
│ │ │ │ ├── glossary_resource.gd
│ │ │ │ ├── icon.png.import
│ │ │ │ ├── icon.svg
│ │ │ │ ├── icon.svg.import
│ │ │ │ ├── index.gd
│ │ │ │ └── subsystem_glossary.gd
│ │ │ ├── History
│ │ │ │ ├── definition.svg
│ │ │ │ ├── definition.svg.import
│ │ │ │ ├── event_history.gd
│ │ │ │ ├── icon.svg
│ │ │ │ ├── icon.svg.import
│ │ │ │ ├── index.gd
│ │ │ │ ├── settings_history.gd
│ │ │ │ ├── settings_history.tscn
│ │ │ │ └── subsystem_history.gd
│ │ │ ├── Jump
│ │ │ │ ├── event_jump.gd
│ │ │ │ ├── event_label.gd
│ │ │ │ ├── event_return.gd
│ │ │ │ ├── icon.png.import
│ │ │ │ ├── icon_jump.png
│ │ │ │ ├── icon_jump.png.import
│ │ │ │ ├── icon_label.png
│ │ │ │ ├── icon_label.png.import
│ │ │ │ ├── icon_return.svg
│ │ │ │ ├── icon_return.svg.import
│ │ │ │ ├── index.gd
│ │ │ │ └── subsystem_jump.gd
│ │ │ ├── LayoutEditor
│ │ │ │ ├── Components
│ │ │ │ │ ├── StyleItem.gd
│ │ │ │ │ ├── StyleItem.tscn
│ │ │ │ │ └── layout_selection_page.gd
│ │ │ │ ├── index.gd
│ │ │ │ ├── layout_editor.gd
│ │ │ │ ├── layout_editor.tscn
│ │ │ │ ├── styles_icon.svg
│ │ │ │ └── styles_icon.svg.import
│ │ │ ├── Save
│ │ │ │ ├── event_save.gd
│ │ │ │ ├── icon.svg
│ │ │ │ ├── icon.svg.import
│ │ │ │ ├── index.gd
│ │ │ │ ├── settings_save.gd
│ │ │ │ ├── settings_save.tscn
│ │ │ │ └── subsystem_save.gd
│ │ │ ├── Settings
│ │ │ │ ├── event_setting.gd
│ │ │ │ ├── icon.svg
│ │ │ │ ├── icon.svg.import
│ │ │ │ ├── index.gd
│ │ │ │ └── subsystem_settings.gd
│ │ │ ├── Signal
│ │ │ │ ├── event_signal.gd
│ │ │ │ ├── icon.png
│ │ │ │ ├── icon.png.import
│ │ │ │ └── index.gd
│ │ │ ├── Style
│ │ │ │ ├── character_settings_style.gd
│ │ │ │ ├── character_settings_style.tscn
│ │ │ │ ├── event_style.gd
│ │ │ │ ├── icon.png
│ │ │ │ ├── icon.png.import
│ │ │ │ ├── index.gd
│ │ │ │ ├── node_style.gd
│ │ │ │ └── subsystem_styles.gd
│ │ │ ├── Text
│ │ │ │ ├── DNextIndicator_icon.svg.import
│ │ │ │ ├── character_settings
│ │ │ │ │ ├── character_moods_settings.gd
│ │ │ │ │ ├── character_moods_settings.tscn
│ │ │ │ │ ├── character_portrait_mood_settings.gd
│ │ │ │ │ └── character_portrait_mood_settings.tscn
│ │ │ │ ├── default_input_handler.gd
│ │ │ │ ├── event_text.gd
│ │ │ │ ├── icon.png
│ │ │ │ ├── icon.png.import
│ │ │ │ ├── index.gd
│ │ │ │ ├── node_dialog_text.gd
│ │ │ │ ├── node_name_label.gd
│ │ │ │ ├── node_next_indicator.gd
│ │ │ │ ├── node_next_indicator_icon.svg
│ │ │ │ ├── node_next_indicator_icon.svg.import
│ │ │ │ ├── node_type_sound.gd
│ │ │ │ ├── settings_text.gd
│ │ │ │ ├── settings_text.tscn
│ │ │ │ └── subsystem_text.gd
│ │ │ ├── TextInput
│ │ │ │ ├── event_text_input.gd
│ │ │ │ ├── icon.png
│ │ │ │ ├── icon.png.import
│ │ │ │ ├── index.gd
│ │ │ │ ├── node_text_input.gd
│ │ │ │ └── subsystem_text_input.gd
│ │ │ ├── Variable
│ │ │ │ ├── add-variable.svg
│ │ │ │ ├── add-variable.svg.import
│ │ │ │ ├── event_variable.gd
│ │ │ │ ├── icon.png
│ │ │ │ ├── icon.png.import
│ │ │ │ ├── index.gd
│ │ │ │ ├── subsystem_variables.gd
│ │ │ │ ├── variable.svg
│ │ │ │ ├── variable.svg.import
│ │ │ │ └── variables_editor
│ │ │ │ │ ├── variable_drag_preview.gd
│ │ │ │ │ ├── variable_drag_preview.tscn
│ │ │ │ │ ├── variable_field.gd
│ │ │ │ │ ├── variable_field.tscn
│ │ │ │ │ ├── variable_group.gd
│ │ │ │ │ ├── variable_group.tscn
│ │ │ │ │ ├── variables_editor.gd
│ │ │ │ │ └── variables_editor.tscn
│ │ │ ├── Voice
│ │ │ │ ├── event_voice.gd
│ │ │ │ ├── icon.png
│ │ │ │ ├── icon.png.import
│ │ │ │ ├── index.gd
│ │ │ │ └── subsystem_voice.gd
│ │ │ ├── Wait
│ │ │ │ ├── event_wait.gd
│ │ │ │ ├── icon.png
│ │ │ │ ├── icon.png.import
│ │ │ │ └── index.gd
│ │ │ └── WaitInput
│ │ │ │ ├── event_wait_input.gd
│ │ │ │ ├── icon.svg
│ │ │ │ ├── icon.svg.import
│ │ │ │ └── index.gd
│ │ ├── Other
│ │ │ ├── DialogicGameHandler.gd
│ │ │ ├── DialogicUtil.gd
│ │ │ ├── Dialogic_Subsystem.gd
│ │ │ └── index_class.gd
│ │ ├── Resources
│ │ │ ├── CharacterResourceLoader.gd
│ │ │ ├── CharacterResourceSaver.gd
│ │ │ ├── TimelineResourceLoader.gd
│ │ │ ├── TimelineResourceSaver.gd
│ │ │ ├── character.gd
│ │ │ ├── event.gd
│ │ │ └── timeline.gd
│ │ ├── plugin.cfg
│ │ └── plugin.gd
│ ├── ez_transitions
│ │ ├── fonts
│ │ │ ├── mini_pixel-7.ttf
│ │ │ └── mini_pixel-7.ttf.import
│ │ ├── images
│ │ │ ├── black_texture.png
│ │ │ ├── black_texture.png.import
│ │ │ ├── checkbox_checked.png
│ │ │ ├── checkbox_checked.png.import
│ │ │ ├── checkbox_unchecked.png
│ │ │ ├── checkbox_unchecked.png.import
│ │ │ ├── checkerboard_texture.png
│ │ │ ├── checkerboard_texture.png.import
│ │ │ ├── option_button_arrow.png
│ │ │ ├── option_button_arrow.png.import
│ │ │ ├── plugin_icon.png
│ │ │ ├── plugin_icon.png.import
│ │ │ ├── plugin_icon.svg
│ │ │ ├── plugin_icon.svg.import
│ │ │ ├── plugin_icon.xcf
│ │ │ ├── spinbox_updown.png
│ │ │ ├── spinbox_updown.png.import
│ │ │ ├── transition_node_icon.png
│ │ │ ├── transition_node_icon.png.import
│ │ │ ├── transition_node_icon.svg
│ │ │ ├── transition_node_icon.svg.import
│ │ │ ├── transition_overlay_node_icon.png
│ │ │ ├── transition_overlay_node_icon.png.import
│ │ │ ├── transition_overlay_node_icon.svg
│ │ │ └── transition_overlay_node_icon.svg.import
│ │ ├── materials
│ │ │ └── transition_material.tres
│ │ ├── objects
│ │ │ ├── main_container
│ │ │ │ ├── basic_settings_script.gd
│ │ │ │ ├── editor_control_script.gd
│ │ │ │ └── main_container.tscn
│ │ │ ├── plugin_singleton
│ │ │ │ ├── plugin_singleton.tscn
│ │ │ │ └── plugin_singleton_script.gd
│ │ │ └── transition_overlay
│ │ │ │ ├── transition_overlay.tscn
│ │ │ │ └── transition_overlay_script.gd
│ │ ├── plugin.cfg
│ │ ├── plugin_handler.gd
│ │ ├── shaders
│ │ │ ├── scroll_shader.gdshader
│ │ │ └── transition_shader.gdshader
│ │ ├── themes
│ │ │ └── main_theme.tres
│ │ └── tutorial.txt
│ ├── ggs
│ │ ├── assets
│ │ │ ├── add.svg
│ │ │ ├── add.svg.import
│ │ │ ├── apply_toggle.svg
│ │ │ ├── apply_toggle.svg.import
│ │ │ ├── bug.svg
│ │ │ ├── bug.svg.import
│ │ │ ├── components
│ │ │ │ ├── _default.svg
│ │ │ │ ├── _default.svg.import
│ │ │ │ ├── arrow_list.svg
│ │ │ │ ├── arrow_list.svg.import
│ │ │ │ ├── button.svg
│ │ │ │ ├── button.svg.import
│ │ │ │ ├── check_box.svg
│ │ │ │ ├── check_box.svg.import
│ │ │ │ ├── input_comp.svg
│ │ │ │ ├── input_comp.svg.import
│ │ │ │ ├── option_list.svg
│ │ │ │ ├── option_list.svg.import
│ │ │ │ ├── radio_list.svg
│ │ │ │ ├── radio_list.svg.import
│ │ │ │ ├── slider.svg
│ │ │ │ ├── slider.svg.import
│ │ │ │ ├── spinbox.svg
│ │ │ │ ├── spinbox.svg.import
│ │ │ │ ├── switch.svg
│ │ │ │ ├── switch.svg.import
│ │ │ │ ├── text_field.svg
│ │ │ │ └── text_field.svg.import
│ │ │ ├── delete.svg
│ │ │ ├── delete.svg.import
│ │ │ ├── docs.svg
│ │ │ ├── docs.svg.import
│ │ │ ├── file_dialog.svg
│ │ │ ├── file_dialog.svg.import
│ │ │ ├── game_settings
│ │ │ │ ├── _default.svg
│ │ │ │ ├── _default.svg.import
│ │ │ │ ├── audio_mute.svg
│ │ │ │ ├── audio_mute.svg.import
│ │ │ │ ├── audio_volume.svg
│ │ │ │ ├── audio_volume.svg.import
│ │ │ │ ├── display_fullscreen.svg
│ │ │ │ ├── display_fullscreen.svg.import
│ │ │ │ ├── display_scale.svg
│ │ │ │ ├── display_scale.svg.import
│ │ │ │ ├── display_size.svg
│ │ │ │ ├── display_size.svg.import
│ │ │ │ ├── input_setting.svg
│ │ │ │ └── input_setting.svg.import
│ │ │ ├── icon_mini.svg
│ │ │ ├── icon_mini.svg.import
│ │ │ ├── icon_mono.svg
│ │ │ ├── icon_mono.svg.import
│ │ │ ├── reload.svg
│ │ │ ├── reload.svg.import
│ │ │ ├── save_file.svg
│ │ │ ├── save_file.svg.import
│ │ │ ├── search.svg
│ │ │ └── search.svg.import
│ │ ├── classes
│ │ │ ├── editor
│ │ │ │ └── ggs_tree.gd
│ │ │ ├── ggs_globals.gd
│ │ │ ├── ggs_input_helper.gd
│ │ │ ├── ggs_save_file.gd
│ │ │ ├── ggs_ui_component.gd
│ │ │ ├── ggs_utils.gd
│ │ │ └── resources
│ │ │ │ ├── ggs_category.gd
│ │ │ │ ├── ggs_gp_icon_db.gd
│ │ │ │ ├── ggs_plugin_data.gd
│ │ │ │ └── ggs_setting.gd
│ │ ├── editor
│ │ │ ├── _theme
│ │ │ │ ├── ggs_theme.gd
│ │ │ │ └── ggs_theme.tres
│ │ │ ├── add_setting_window
│ │ │ │ ├── add_setting_window.gd
│ │ │ │ ├── add_setting_window.tscn
│ │ │ │ └── desc_field.gd
│ │ │ ├── category_panel
│ │ │ │ ├── category_list.gd
│ │ │ │ ├── category_panel.gd
│ │ │ │ └── category_panel.tscn
│ │ │ ├── component_panel
│ │ │ │ ├── component_panel.gd
│ │ │ │ └── component_panel.tscn
│ │ │ ├── main_panel
│ │ │ │ ├── bug_btn.gd
│ │ │ │ ├── docs_btn.gd
│ │ │ │ ├── main_panel.tscn
│ │ │ │ ├── pref_btn.gd
│ │ │ │ ├── save_file_menu.gd
│ │ │ │ └── split_containers.gd
│ │ │ ├── pref_window
│ │ │ │ ├── info_ctnr.gd
│ │ │ │ ├── pref_window.gd
│ │ │ │ └── pref_window.tscn
│ │ │ └── setting_panel
│ │ │ │ ├── setting_list.gd
│ │ │ │ ├── setting_panel.gd
│ │ │ │ └── setting_panel.tscn
│ │ ├── plugin.cfg
│ │ ├── plugin.gd
│ │ └── plugin_data.tres
│ └── godot_state_charts
│ │ ├── LICENSE
│ │ ├── all_of_guard.gd
│ │ ├── all_of_guard.svg
│ │ ├── all_of_guard.svg.import
│ │ ├── animation_player_state.gd
│ │ ├── animation_player_state.svg
│ │ ├── animation_player_state.svg.import
│ │ ├── animation_tree_state.gd
│ │ ├── animation_tree_state.svg
│ │ ├── animation_tree_state.svg.import
│ │ ├── any_of_guard.gd
│ │ ├── any_of_guard.svg
│ │ ├── any_of_guard.svg.import
│ │ ├── atomic_state.gd
│ │ ├── atomic_state.svg
│ │ ├── atomic_state.svg.import
│ │ ├── compound_state.gd
│ │ ├── compound_state.svg
│ │ ├── compound_state.svg.import
│ │ ├── expression_guard.gd
│ │ ├── expression_guard.svg
│ │ ├── expression_guard.svg.import
│ │ ├── godot_state_charts.gd
│ │ ├── guard.gd
│ │ ├── history_state.gd
│ │ ├── history_state.svg
│ │ ├── history_state.svg.import
│ │ ├── not_guard.gd
│ │ ├── not_guard.svg
│ │ ├── not_guard.svg.import
│ │ ├── parallel_state.gd
│ │ ├── parallel_state.svg
│ │ ├── parallel_state.svg.import
│ │ ├── plugin.cfg
│ │ ├── saved_state.gd
│ │ ├── state.gd
│ │ ├── state_chart.gd
│ │ ├── state_chart.svg
│ │ ├── state_chart.svg.import
│ │ ├── state_is_active_guard.gd
│ │ ├── state_is_active_guard.svg
│ │ ├── state_is_active_guard.svg.import
│ │ ├── transition.gd
│ │ ├── transition.svg
│ │ ├── transition.svg.import
│ │ └── utilities
│ │ ├── editor_sidebar.gd
│ │ ├── editor_sidebar.tscn
│ │ ├── ring_buffer.gd
│ │ ├── state_chart_debugger.gd
│ │ ├── state_chart_debugger.svg
│ │ ├── state_chart_debugger.svg.import
│ │ └── state_chart_debugger.tscn
├── assets
│ ├── audios
│ │ ├── Bustling Streets.ogg
│ │ ├── Bustling Streets.ogg.import
│ │ ├── Journey Across the Blue.ogg
│ │ ├── Journey Across the Blue.ogg.import
│ │ ├── click_003.ogg
│ │ ├── click_003.ogg.import
│ │ ├── footstep05.ogg
│ │ ├── footstep05.ogg.import
│ │ ├── handleSmallLeather2.ogg
│ │ ├── handleSmallLeather2.ogg.import
│ │ ├── phaseJump1.ogg
│ │ ├── phaseJump1.ogg.import
│ │ ├── phaserDown1.ogg
│ │ ├── phaserDown1.ogg.import
│ │ ├── phaserDown2.ogg
│ │ ├── phaserDown2.ogg.import
│ │ ├── threeTone2.ogg
│ │ ├── threeTone2.ogg.import
│ │ ├── zapThreeToneDown.ogg
│ │ └── zapThreeToneDown.ogg.import
│ ├── backgrounds
│ │ ├── background_layer_1.png
│ │ └── background_layer_1.png.import
│ ├── characters
│ │ └── _Dash.png.import
│ ├── effects
│ │ └── dust
│ │ │ ├── jump_dust.png
│ │ │ ├── jump_dust.png.import
│ │ │ ├── smoke_dust.png
│ │ │ └── smoke_dust.png.import
│ ├── others
│ │ └── fonts
│ │ │ ├── DottedSongtiSquareRegular.otf
│ │ │ └── DottedSongtiSquareRegular.otf.import
│ ├── theme.tres
│ └── tileSets
│ │ ├── cat_tile.png
│ │ ├── cat_tile.png.import
│ │ ├── tilemap_expand.png
│ │ ├── tilemap_expand.png.import
│ │ ├── tiles.png
│ │ ├── tiles.png.import
│ │ ├── tiles.tres
│ │ ├── title.png
│ │ ├── title.png.import
│ │ └── title
│ │ ├── title-sprite-00001.png
│ │ ├── title-sprite-00001.png.import
│ │ ├── title-sprite-00002.png
│ │ ├── title-sprite-00002.png.import
│ │ ├── title-sprite-00003.png
│ │ ├── title-sprite-00003.png.import
│ │ ├── title-sprite-00004.png
│ │ ├── title-sprite-00004.png.import
│ │ ├── title-sprite-00005.png
│ │ ├── title-sprite-00005.png.import
│ │ ├── title-sprite-00006.png
│ │ └── title-sprite-00006.png.import
├── default_bus_layout.tres
├── export_presets.cfg
├── game_settings
│ ├── components
│ │ ├── _misc_components
│ │ │ ├── apply_btn
│ │ │ │ ├── apply_btn.gd
│ │ │ │ └── apply_btn.tscn
│ │ │ ├── input_confirm_window
│ │ │ │ ├── input_confirm_window.gd
│ │ │ │ └── input_confirm_window.tscn
│ │ │ └── reset_btn
│ │ │ │ ├── reset_btn.gd
│ │ │ │ └── reset_btn.tscn
│ │ ├── _shared_scripts
│ │ │ └── binary_selection.gd
│ │ ├── arrow_list
│ │ │ ├── arrow_list.gd
│ │ │ ├── arrow_list.tscn
│ │ │ └── component.cfg
│ │ ├── checkbox
│ │ │ ├── checkbox.tscn
│ │ │ └── component.cfg
│ │ ├── input_btn
│ │ │ ├── component.cfg
│ │ │ ├── input_btn.gd
│ │ │ └── input_btn.tscn
│ │ ├── option_list
│ │ │ ├── component.cfg
│ │ │ ├── option_list.gd
│ │ │ └── option_list.tscn
│ │ ├── radio_list
│ │ │ ├── component.cfg
│ │ │ ├── radio_list.gd
│ │ │ └── radio_list.tscn
│ │ ├── slider
│ │ │ ├── component.cfg
│ │ │ ├── slider.gd
│ │ │ └── slider.tscn
│ │ ├── spinbox
│ │ │ ├── component.cfg
│ │ │ ├── spinbox.gd
│ │ │ └── spinbox.tscn
│ │ ├── switch
│ │ │ ├── component.cfg
│ │ │ └── switch.tscn
│ │ ├── text_field
│ │ │ ├── component.cfg
│ │ │ ├── text_field.gd
│ │ │ └── text_field.tscn
│ │ └── toggle_btn
│ │ │ ├── component.cfg
│ │ │ └── toggle_btn.tscn
│ └── settings
│ │ ├── audio_mute.gd
│ │ ├── audio_volume.gd
│ │ ├── display_fullscreen.gd
│ │ ├── display_scale.gd
│ │ ├── display_size.gd
│ │ └── input.gd
├── icon.svg
├── icon.svg.import
├── project.godot
├── scenes
│ ├── dust.tscn
│ ├── levels
│ │ ├── demo.tscn
│ │ ├── next_platform.tscn
│ │ └── play_ground.tscn
│ ├── player.tscn
│ ├── re_dash.tscn
│ ├── tips.tscn
│ └── ui
│ │ ├── Settings.tscn
│ │ ├── click_audio.tscn
│ │ ├── main_menu.tscn
│ │ ├── pause_layer.tscn
│ │ └── pause_overlay.tscn
└── scripts
│ ├── Camera2D.gd
│ ├── ClickAudio.gd
│ ├── MainMenu.gd
│ ├── PauseOverlay.gd
│ ├── Player.gd
│ ├── Playground.gd
│ ├── ReDash.gd
│ ├── Settings.gd
│ ├── Transation.gd
│ ├── demo.gd
│ ├── dialogic
│ ├── course.dtl
│ ├── feint.dch
│ ├── final.dtl
│ └── teches.dtl
│ └── dust.gd
├── graphSvelte
├── README.md
├── package-lock.json
├── package.json
├── public
│ ├── build
│ │ ├── bundle.css
│ │ ├── bundle.js
│ │ └── bundle.js.map
│ ├── favicon.png
│ ├── global.css
│ └── index.html
├── rollup.config.js
├── scripts
│ └── setupTypeScript.js
└── src
│ ├── App.svelte
│ ├── index.js
│ └── main.js
├── others
└── webui_plus.py
├── system-monitor
├── .gitignore
├── .vscode
│ └── extensions.json
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── public
│ ├── tauri.svg
│ └── vite.svg
├── src-tauri
│ ├── .gitignore
│ ├── Cargo.lock
│ ├── Cargo.toml
│ ├── build.rs
│ ├── icons
│ │ ├── 128x128.png
│ │ ├── 128x128@2x.png
│ │ ├── 32x32.png
│ │ ├── Square107x107Logo.png
│ │ ├── Square142x142Logo.png
│ │ ├── Square150x150Logo.png
│ │ ├── Square284x284Logo.png
│ │ ├── Square30x30Logo.png
│ │ ├── Square310x310Logo.png
│ │ ├── Square44x44Logo.png
│ │ ├── Square71x71Logo.png
│ │ ├── Square89x89Logo.png
│ │ ├── StoreLogo.png
│ │ ├── icon.icns
│ │ ├── icon.ico
│ │ └── icon.png
│ ├── src
│ │ ├── main.rs
│ │ ├── monitor.rs
│ │ └── native.rs
│ └── tauri.conf.json
├── src
│ ├── App.vue
│ ├── assets
│ │ ├── ts
│ │ │ ├── monitor.ts
│ │ │ └── options
│ │ │ │ ├── batteryOption.ts
│ │ │ │ ├── cpuOption.ts
│ │ │ │ ├── gaugeOption.ts
│ │ │ │ ├── memoryOption.ts
│ │ │ │ ├── options.ts
│ │ │ │ └── processOption.ts
│ │ └── vue.svg
│ ├── components
│ │ ├── BatteryPanel.vue
│ │ ├── CpuPanel.vue
│ │ ├── Greet.vue
│ │ ├── MemoryPanel.vue
│ │ ├── ProcessPanel.vue
│ │ └── SensorsPanel.vue
│ ├── main.ts
│ ├── style.css
│ └── vite-env.d.ts
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
├── tauri-api-demos
├── .gitignore
├── .vscode
│ └── extensions.json
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── public
│ ├── tauri.svg
│ └── vite.svg
├── src-tauri
│ ├── .gitignore
│ ├── Cargo.lock
│ ├── Cargo.toml
│ ├── build.rs
│ ├── icons
│ │ ├── 128x128.png
│ │ ├── 128x128@2x.png
│ │ ├── 32x32.png
│ │ ├── Square107x107Logo.png
│ │ ├── Square142x142Logo.png
│ │ ├── Square150x150Logo.png
│ │ ├── Square284x284Logo.png
│ │ ├── Square30x30Logo.png
│ │ ├── Square310x310Logo.png
│ │ ├── Square44x44Logo.png
│ │ ├── Square71x71Logo.png
│ │ ├── Square89x89Logo.png
│ │ ├── StoreLogo.png
│ │ ├── icon.icns
│ │ ├── icon.ico
│ │ └── icon.png
│ ├── src
│ │ └── main.rs
│ └── tauri.conf.json
├── src
│ ├── App.vue
│ ├── assets
│ │ └── vue.svg
│ ├── components
│ │ ├── Greet.vue
│ │ ├── JsApiApp.vue
│ │ ├── JsApiClipboard.vue
│ │ ├── JsApiDialog.vue
│ │ ├── JsApiEvent.vue
│ │ ├── JsApiFs.vue
│ │ ├── JsApiGlobalShortcut.vue
│ │ ├── JsApiHttp.vue
│ │ ├── JsApiNotification.vue
│ │ ├── JsApiOs.vue
│ │ ├── JsApiPath.vue
│ │ └── JsApiWindow.vue
│ ├── main.js
│ └── style.css
└── vite.config.js
├── tauri-downloader
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── public
│ ├── tauri.svg
│ └── vite.svg
├── src-tauri
│ ├── Cargo.lock
│ ├── Cargo.toml
│ ├── build.rs
│ ├── capabilities
│ │ └── default.json
│ ├── gen
│ │ └── schemas
│ │ │ ├── acl-manifests.json
│ │ │ ├── capabilities.json
│ │ │ ├── desktop-schema.json
│ │ │ └── macOS-schema.json
│ ├── icons
│ │ ├── 128x128.png
│ │ ├── 128x128@2x.png
│ │ ├── 32x32.png
│ │ ├── Square107x107Logo.png
│ │ ├── Square142x142Logo.png
│ │ ├── Square150x150Logo.png
│ │ ├── Square284x284Logo.png
│ │ ├── Square30x30Logo.png
│ │ ├── Square310x310Logo.png
│ │ ├── Square44x44Logo.png
│ │ ├── Square71x71Logo.png
│ │ ├── Square89x89Logo.png
│ │ ├── StoreLogo.png
│ │ ├── icon.icns
│ │ ├── icon.ico
│ │ └── icon.png
│ ├── src
│ │ ├── download.rs
│ │ ├── main.rs
│ │ └── native.rs
│ └── tauri.conf.json
├── src
│ ├── App.vue
│ ├── assets
│ │ └── vue.svg
│ ├── components
│ │ └── Greet.vue
│ └── main.js
└── vite.config.js
├── tauri-markdown
├── .gitignore
├── LICENSE
├── README.md
├── app
│ ├── error.tsx
│ ├── layout.tsx
│ ├── page.tsx
│ ├── providers.tsx
│ └── style.css
├── components
│ ├── check-list-item.tsx
│ ├── hovering-toolbar.tsx
│ ├── icons.tsx
│ ├── navbar.tsx
│ ├── primitives.ts
│ ├── scroll-wrapper.tsx
│ ├── section-header.tsx
│ ├── tab-icon.tsx
│ └── theme-switch.tsx
├── config
│ └── fonts.ts
├── next-env.d.ts
├── next.config.mjs
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
│ ├── favicon.ico
│ ├── logo@0.5x.png
│ ├── next.svg
│ └── vercel.svg
├── src-tauri
│ ├── .gitignore
│ ├── Cargo.lock
│ ├── Cargo.toml
│ ├── build.rs
│ ├── capabilities
│ │ └── default.json
│ ├── icons
│ │ ├── 128x128.png
│ │ ├── 128x128@2x.png
│ │ ├── 32x32.png
│ │ ├── Square107x107Logo.png
│ │ ├── Square142x142Logo.png
│ │ ├── Square150x150Logo.png
│ │ ├── Square284x284Logo.png
│ │ ├── Square30x30Logo.png
│ │ ├── Square310x310Logo.png
│ │ ├── Square44x44Logo.png
│ │ ├── Square71x71Logo.png
│ │ ├── Square89x89Logo.png
│ │ ├── StoreLogo.png
│ │ ├── icon.icns
│ │ ├── icon.ico
│ │ └── icon.png
│ ├── src
│ │ ├── db.rs
│ │ ├── log.rs
│ │ ├── main.rs
│ │ ├── native.rs
│ │ ├── search.rs
│ │ └── source.rs
│ └── tauri.conf.json
├── styles
│ └── globals.css
├── tailwind.config.js
├── tsconfig.json
├── types
│ └── index.ts
└── utils
│ ├── github.ts
│ └── slate-utils.ts
└── tauri-mobile-rss
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
├── tauri.svg
└── vite.svg
├── src-tauri
├── Cargo.lock
├── Cargo.toml
├── build.rs
├── capabilities
│ └── default.json
├── icons
│ ├── 128x128.png
│ ├── 128x128@2x.png
│ ├── 32x32.png
│ ├── Square107x107Logo.png
│ ├── Square142x142Logo.png
│ ├── Square150x150Logo.png
│ ├── Square284x284Logo.png
│ ├── Square30x30Logo.png
│ ├── Square310x310Logo.png
│ ├── Square44x44Logo.png
│ ├── Square71x71Logo.png
│ ├── Square89x89Logo.png
│ ├── StoreLogo.png
│ ├── icon.icns
│ ├── icon.ico
│ └── icon.png
├── src
│ ├── lib.rs
│ ├── main.rs
│ └── rss.rs
└── tauri.conf.json
├── src
├── App.vue
├── assets
│ └── vue.svg
├── components
│ ├── AudioPlayer.vue
│ └── Greet.vue
├── main.js
├── pages
│ ├── LeftPanelPage.vue
│ ├── RssDetails.vue
│ ├── RssPage.vue
│ └── SettingsPage.vue
├── routes.js
├── scripts
│ ├── db.js
│ └── init.js
└── styles
│ └── main.css
├── tailwind.config.js
└── vite.config.js
/.gitignore:
--------------------------------------------------------------------------------
1 | *.DS_Store
2 |
--------------------------------------------------------------------------------
/FocusTaskWatch/FocusTaskWatch Watch App/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "platform" : "watchos",
6 | "reference" : "systemOrangeColor"
7 | },
8 | "idiom" : "universal"
9 | }
10 | ],
11 | "info" : {
12 | "author" : "xcode",
13 | "version" : 1
14 | },
15 | "properties" : {
16 | "localizable" : true
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/FocusTaskWatch/FocusTaskWatch Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "focus-icon.png",
5 | "idiom" : "universal",
6 | "platform" : "watchos",
7 | "size" : "1024x1024"
8 | }
9 | ],
10 | "info" : {
11 | "author" : "xcode",
12 | "version" : 1
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/FocusTaskWatch/FocusTaskWatch Watch App/Assets.xcassets/AppIcon.appiconset/focus-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/FocusTaskWatch/FocusTaskWatch Watch App/Assets.xcassets/AppIcon.appiconset/focus-icon.png
--------------------------------------------------------------------------------
/FocusTaskWatch/FocusTaskWatch Watch App/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/FocusTaskWatch/FocusTaskWatch Watch App/Preview Content/Preview Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/FocusTaskWatch/FocusTaskWatch-Watch-App-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | UIBackgroundModes
6 |
7 | WKBackgroundModes
8 |
9 | alarm
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/FocusTaskWatch/FocusTaskWatch.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/FocusTaskWatch/FocusTaskWatch.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/FocusTaskWatch/FocusTaskWatch.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved:
--------------------------------------------------------------------------------
1 | {
2 | "pins" : [
3 | {
4 | "identity" : "compactslider",
5 | "kind" : "remoteSourceControl",
6 | "location" : "https://github.com/buh/CompactSlider.git",
7 | "state" : {
8 | "branch" : "main",
9 | "revision" : "3cb37fb7385913835b6844c6af2680c64000dcd2"
10 | }
11 | }
12 | ],
13 | "version" : 2
14 | }
15 |
--------------------------------------------------------------------------------
/FocusTaskWatch/FocusTaskWatch.xcodeproj/project.xcworkspace/xcuserdata/feint.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/FocusTaskWatch/FocusTaskWatch.xcodeproj/project.xcworkspace/xcuserdata/feint.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/FocusTaskWatch/en.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | /*
2 | Localizable.strings
3 | FocusTaskWatch
4 |
5 | Created by feint on 2023/2/16.
6 |
7 | */
8 |
9 | "cancel" = "cancel";
10 | "Done" = "Done";
11 | "Continue"="Continue";
12 |
--------------------------------------------------------------------------------
/FocusTaskWatch/zh-Hans.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | /*
2 | Localizable.strings
3 | FocusTaskWatch
4 |
5 | Created by feint on 2023/2/16.
6 |
7 | */
8 |
9 | "cancel"="取消";
10 | "Done"="完成";
11 | "Continue"="继续";
12 |
--------------------------------------------------------------------------------
/QRCodeGenerator/QRCodeGenerator.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/QRCodeGenerator/QRCodeGenerator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/QRCodeGenerator/QRCodeGenerator.xcodeproj/project.xcworkspace/xcuserdata/feint.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/QRCodeGenerator/QRCodeGenerator.xcodeproj/project.xcworkspace/xcuserdata/feint.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/QRCodeGenerator/QRCodeGenerator.xcodeproj/xcuserdata/feint.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | QRCodeGenerator.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/QRCodeGenerator/QRCodeGenerator/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "idiom" : "universal"
5 | }
6 | ],
7 | "info" : {
8 | "author" : "xcode",
9 | "version" : 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/QRCodeGenerator/QRCodeGenerator/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "qrcode.png",
5 | "idiom" : "universal",
6 | "platform" : "ios",
7 | "size" : "1024x1024"
8 | }
9 | ],
10 | "info" : {
11 | "author" : "xcode",
12 | "version" : 1
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/QRCodeGenerator/QRCodeGenerator/Assets.xcassets/AppIcon.appiconset/qrcode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/QRCodeGenerator/QRCodeGenerator/Assets.xcassets/AppIcon.appiconset/qrcode.png
--------------------------------------------------------------------------------
/QRCodeGenerator/QRCodeGenerator/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/QRCodeGenerator/QRCodeGenerator/ContentView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContentView.swift
3 | // QRCodeGenerator
4 | //
5 | // Created by feint on 2023/2/25.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct ContentView: View {
11 | var body: some View {
12 | QrcodeView()
13 | }
14 | }
15 |
16 | struct ContentView_Previews: PreviewProvider {
17 | static var previews: some View {
18 | ContentView()
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/QRCodeGenerator/QRCodeGenerator/Extensions/ArrayExtensions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ArrayExtensions.swift
3 | // EasyEdit
4 | //
5 | // Created by feint on 2023/2/22.
6 | //
7 |
8 | import Foundation
9 |
10 | extension Array where Element: Equatable {
11 |
12 | func withoutDuplicates() -> [Element] {
13 | // Thanks to https://github.com/sairamkotha for improving the method
14 | return reduce(into: [Element]()) {
15 | if !$0.contains($1) {
16 | $0.append($1)
17 | }
18 | }
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/QRCodeGenerator/QRCodeGenerator/Modifiers/ThemeViews.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ThemeView.swift
3 | // EasyEdit
4 | //
5 | // Created by feint on 2023/2/21.
6 | //
7 |
8 | import Foundation
9 |
--------------------------------------------------------------------------------
/QRCodeGenerator/QRCodeGenerator/Preview Content/Preview Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/QRCodeGenerator/QRCodeGenerator/QRCodeGeneratorApp.swift:
--------------------------------------------------------------------------------
1 | //
2 | // QRCodeGeneratorApp.swift
3 | // QRCodeGenerator
4 | //
5 | // Created by feint on 2023/2/25.
6 | //
7 |
8 | import SwiftUI
9 |
10 | @main
11 | struct QRCodeGeneratorApp: App {
12 | var body: some Scene {
13 | WindowGroup {
14 | ContentView()
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/QRCodeGenerator/en.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | /*
2 | Localizable.strings
3 | QRCodeGenerator
4 |
5 | Created by feint on 2023/2/25.
6 |
7 | */
8 |
--------------------------------------------------------------------------------
/QRCodeGenerator/zh-Hans.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | /*
2 | Localizable.strings
3 | QRCodeGenerator
4 |
5 | Created by feint on 2023/2/25.
6 |
7 | */
8 | /**
9 | 二维码
10 | */
11 | "QR Code"="二维码";
12 | "Width"="宽度";
13 | "Please input QR Code message"="请输入二维码内容";
14 | "Create QR Code"="创建二维码";
15 | "Copied To Clipboard"="已复制到剪切板";
16 | "Rectangle"="矩形";
17 | "RoundedRectangle"="圆角矩形";
18 | "Circle"="圆形";
19 | "Share QR Code"="分享二维码";
20 |
21 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi.xcodeproj/project.xcworkspace/xcuserdata/feint.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/SimpleBiLi/SimpleBiLi.xcodeproj/project.xcworkspace/xcuserdata/feint.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi.xcodeproj/xcuserdata/feint.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi.xcodeproj/xcuserdata/feint.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | SimpleBiLi.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Assets.xcassets/666.imageset/666.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/SimpleBiLi/SimpleBiLi/Assets.xcassets/666.imageset/666.png
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Assets.xcassets/666.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "666.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "idiom" : "universal"
5 | }
6 | ],
7 | "info" : {
8 | "author" : "xcode",
9 | "version" : 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/SearchSuggest.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SearchSuggest.swift
3 | // my-bilibili
4 | //
5 | // Created by feint on 2022/12/9.
6 | //
7 |
8 | import Foundation
9 |
10 | struct SearchSuggest: Identifiable {
11 | var id = UUID()
12 | var term: String = ""
13 | var value: String = ""
14 | }
15 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/SidebarItem.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RegionItem.swift
3 | // my-bilibili
4 | //
5 | // Created by feint on 2022/12/4.
6 | //
7 |
8 | import Foundation
9 |
10 | struct SidebarItem :Identifiable{
11 | let id:Int
12 | let name: String
13 | var icon: String = "appletv"
14 | var tid:Int = -1
15 | }
16 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/SidebarSection.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SidebarSection.swift
3 | // my-bilibili
4 | //
5 | // Created by feint on 2022/12/6.
6 | //
7 |
8 | import Foundation
9 |
10 | struct SideBarSection:Identifiable{
11 | var id = UUID()
12 | var sectionName: String = "标题"
13 | var type: Int = 0
14 | var items:[SidebarItem] = []
15 | }
16 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/Tag.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Tag.swift
3 | // my-bilibili
4 | //
5 | // Created by feint on 2022/12/4.
6 | //
7 |
8 | import Foundation
9 |
10 | struct Tag:Identifiable{
11 | var id:Int
12 | var value:String
13 | }
14 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/UpInfo.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UpInfo.swift
3 | // my-bilibili
4 | //
5 | // Created by feint on 2022/12/4.
6 | //
7 |
8 | import Foundation
9 |
10 | struct UpInfo {
11 | var name:String
12 | var headImage:String
13 | static let defaultUpInfo = UpInfo(name: "feint", headImage: "face")
14 | }
15 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/VideoDetail.swift:
--------------------------------------------------------------------------------
1 | //
2 | // VideoDetail.swift
3 | // my-bilibili
4 | //
5 | // Created by feint on 2022/12/4.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct VideoDetail {
11 | var title:String="暂无标题暂无简介暂无简介暂无简介暂无简介暂无简介暂无简介暂无简介"
12 | var upInfo:UpInfo=UpInfo(name: "测试", headImage: "head")
13 | var introduce:String="暂无简介"
14 | var videoLink:String=""
15 | var videoImg: String=""
16 | var bvid: String = ""
17 | var lastBvid: String = ""
18 | var tags:[Tag]=[Tag(id: 1, value: "Ipad")]
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/VideoItem.swift:
--------------------------------------------------------------------------------
1 | //
2 | // VideoItem.swift
3 | // my-bilibili
4 | //
5 | // Created by feint on 2022/12/4.
6 | //
7 | import SwiftUI
8 |
9 | struct VideoItem:Identifiable,Hashable {
10 | var id = UUID()
11 | var title:String
12 | var mainImage:String
13 | var author: String
14 | var face: String
15 | var avid:Int
16 | var bvid:String
17 | static let defaultItem = VideoItem(title: "this is a title", mainImage: "aa", author: "feint", face: "", avid: 1, bvid: "BV")
18 | }
19 |
20 | struct VideoDynamicCollection {
21 | var videoList: [VideoItem]
22 | }
23 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/VideoList.swift:
--------------------------------------------------------------------------------
1 | //
2 | // VideoList.swift
3 | // my-bilibili
4 | //
5 | // Created by feint on 2022/12/4.
6 | //
7 |
8 | import Foundation
9 |
10 | import SwiftUI
11 |
12 | struct VideoList {
13 | @State var list:[VideoItem]
14 | @State var page:Int = 1
15 |
16 | func reset() {
17 | list.removeAll()
18 | page = 1;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/dto/OwnerDTO.swift:
--------------------------------------------------------------------------------
1 | //
2 | // OwnerDTO.swift
3 | // my-bilibili
4 | //
5 | // Created by feint on 2022/12/4.
6 | //
7 |
8 | import Foundation
9 |
10 | struct OwnerDTO: Decodable{
11 | let mid:Int
12 | let name:String
13 | let face:String
14 | }
15 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/dto/dynamic/VideoDynamicDataDTO.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | struct VideoDynamicDataDTO:Decodable {
4 | let page:VideoDynamicPageDTO
5 | let archives:[VideoDynamicArchiveDTO]
6 | }
7 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/dto/dynamic/VideoDynamicPageDTO.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | struct VideoDynamicPageDTO: Decodable{
4 | let num:Int
5 | let size:Int
6 | let count:Int
7 | }
8 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/dto/dynamic/VideoDynamicRespDTO.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | struct VideoDynamicRespDTO: Decodable {
4 | let code:Int
5 | let message:String
6 | let ttl:Int
7 | let data:VideoDynamicDataDTO
8 | }
9 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/dto/info/VideoDetailDataDTO.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | struct VideoDetailDataDTO:Decodable {
4 | let bvid:String
5 | let aid:Int
6 | let tid:Int
7 | let cid:Int
8 | let tname:String
9 | let pic:String
10 | let title:String
11 | let desc:String
12 | let owner:OwnerDTO
13 | }
14 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/dto/info/VideoDetailRespDTO.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | struct VideoDetailRespDTO:Decodable {
4 | let code:Int
5 | let message:String
6 | let ttl:Int
7 | let data:VideoDetailDataDTO
8 | }
9 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/dto/info/VideoRecRespDTO.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | struct VideoRecRespDTO:Decodable {
4 | let code:Int
5 | let message:String
6 | let data:[VideoDetailDataDTO]
7 | }
8 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/dto/player/DurlDTO.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | struct DurlDTO:Decodable {
4 | let order:Int
5 | let url:String
6 | let backup_url:[String]
7 | }
8 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/dto/player/VideoPlayDataDTO.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | struct VideoPlayDataDTO:Decodable {
4 | let durl:[DurlDTO]
5 | let format: String
6 | let timelength: Int
7 | let quality: Int
8 | }
9 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/dto/player/VideoPlayRespDTO.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | struct VideoPlayRespDTO:Decodable {
4 | let code:Int
5 | let message:String
6 | let data:VideoPlayDataDTO;
7 | }
8 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Model/dto/search/SearchSuggestRespDTO.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SearchSuggestRespDTO.swift
3 | // my-bilibili
4 | //
5 | // Created by feint on 2022/12/9.
6 | //
7 |
8 | import Foundation
9 |
10 | struct SearchSuggestRespDTO: Codable {
11 | var value: String
12 | var term: String
13 | var ref: Int
14 | var name: String
15 | var spid: Int
16 | }
17 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Preview Content/Preview Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/SimpleBiLi.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.files.user-selected.read-only
8 |
9 | com.apple.security.network.client
10 |
11 | com.apple.security.network.server
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/SimpleBiLiApp.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SimpleBiLiApp.swift
3 | // SimpleBiLi
4 | //
5 | // Created by feint on 2022/12/10.
6 | //
7 |
8 | import SwiftUI
9 |
10 | @main
11 | struct SimpleBiLiApp: App {
12 | @StateObject var fetcher = BiliFetcher()
13 | var body: some Scene {
14 | WindowGroup {
15 | ContentView().environmentObject(fetcher)
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/SimpleBiLi/SimpleBiLi/Utils/UrlUtils.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UrlUtils.swift
3 | // my-bilibili
4 | //
5 | // Created by feint on 2022/12/9.
6 | //
7 |
8 | import Foundation
9 |
10 | struct UrlUtils {
11 | static func toSafeUrl(url: String) -> String {
12 | return url.contains("http") ? url.replacingOccurrences(of: "http://", with: "https://") : "https:\(url)"
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/chrome-plugin-bilibili/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | build
3 | *.pem
4 |
--------------------------------------------------------------------------------
/chrome-plugin-bilibili/README.md:
--------------------------------------------------------------------------------
1 | #
Bilibili Pro
2 |
3 | My Chrome Extension
4 |
5 | ## Features
6 |
7 | - Feature 1
8 | - Feature 2
9 |
10 | ## Install
11 |
12 | [**Chrome** extension]()
13 |
14 | ## Contribution
15 |
16 | Suggestions and pull requests are welcomed!.
17 |
18 | ---
19 |
20 | This project was bootstrapped with [Chrome Extension CLI](https://github.com/dutiyesh/chrome-extension-cli)
21 |
22 |
--------------------------------------------------------------------------------
/chrome-plugin-bilibili/chrome-plugin-bilibili.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/chrome-plugin-bilibili/chrome-plugin-bilibili.zip
--------------------------------------------------------------------------------
/chrome-plugin-bilibili/config/paths.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const path = require('path');
4 |
5 | const PATHS = {
6 | src: path.resolve(__dirname, '../src'),
7 | build: path.resolve(__dirname, '../build'),
8 | };
9 |
10 | module.exports = PATHS;
11 |
--------------------------------------------------------------------------------
/chrome-plugin-bilibili/public/icons/icon_128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/chrome-plugin-bilibili/public/icons/icon_128.png
--------------------------------------------------------------------------------
/chrome-plugin-bilibili/public/icons/icon_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/chrome-plugin-bilibili/public/icons/icon_16.png
--------------------------------------------------------------------------------
/chrome-plugin-bilibili/public/icons/icon_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/chrome-plugin-bilibili/public/icons/icon_32.png
--------------------------------------------------------------------------------
/chrome-plugin-bilibili/public/icons/icon_48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/chrome-plugin-bilibili/public/icons/icon_48.png
--------------------------------------------------------------------------------
/chrome-plugin-bilibili/src/background.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome-plugin-bilibili/src/default.js:
--------------------------------------------------------------------------------
1 | // Listen for message
2 | chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
3 | sendResponse({message:"default nessage"})
4 | });
--------------------------------------------------------------------------------
/chrome-plugin-bilibili/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | content: ["./src/*.{html,js}","./public/*.html"],
4 | theme: {
5 | extend: {},
6 | },
7 | plugins: [],
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/chrome-plugin-starter/.gitignore:
--------------------------------------------------------------------------------
1 | # dependencies
2 | /node_modules
3 |
4 | # production
5 | /build
6 |
7 | # misc
8 | .DS_Store
9 |
10 | npm-debug.log*
11 |
--------------------------------------------------------------------------------
/chrome-plugin-starter/README.md:
--------------------------------------------------------------------------------
1 | #
Chrome Plugin Starter
2 |
3 | My Chrome Extension
4 |
5 | ## Features
6 |
7 | - Feature 1
8 | - Feature 2
9 |
10 | ## Install
11 |
12 | [**Chrome** extension]()
13 |
14 | ## Contribution
15 |
16 | Suggestions and pull requests are welcomed!.
17 |
18 | ---
19 |
20 | This project was bootstrapped with [Chrome Extension CLI](https://github.com/dutiyesh/chrome-extension-cli)
21 |
22 |
--------------------------------------------------------------------------------
/chrome-plugin-starter/config/paths.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const path = require('path');
4 |
5 | const PATHS = {
6 | src: path.resolve(__dirname, '../src'),
7 | build: path.resolve(__dirname, '../build'),
8 | };
9 |
10 | module.exports = PATHS;
11 |
--------------------------------------------------------------------------------
/chrome-plugin-starter/config/webpack.config.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const { merge } = require('webpack-merge');
4 |
5 | const common = require('./webpack.common.js');
6 | const PATHS = require('./paths');
7 |
8 | // Merge webpack configuration files
9 | const config = merge(common, {
10 | entry: {
11 | popup: PATHS.src + '/popup.js',
12 | contentScript: PATHS.src + '/contentScript.js',
13 | background: PATHS.src + '/background.js',
14 | },
15 | });
16 |
17 | module.exports = config;
18 |
--------------------------------------------------------------------------------
/chrome-plugin-starter/public/icons/icon_128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/chrome-plugin-starter/public/icons/icon_128.png
--------------------------------------------------------------------------------
/chrome-plugin-starter/public/icons/icon_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/chrome-plugin-starter/public/icons/icon_16.png
--------------------------------------------------------------------------------
/chrome-plugin-starter/public/icons/icon_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/chrome-plugin-starter/public/icons/icon_32.png
--------------------------------------------------------------------------------
/chrome-plugin-starter/public/icons/icon_48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/feint123/feint-demos/9ae09054a4df9537a7aaedfbf46325dba68123d9/chrome-plugin-starter/public/icons/icon_48.png
--------------------------------------------------------------------------------
/code-search/.gitignore:
--------------------------------------------------------------------------------
1 | /target
2 | backup.txt
3 |
--------------------------------------------------------------------------------
/code-search/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "code-search"
3 | version = "0.1.0"
4 | edition = "2021"
5 |
6 | [dependencies]
7 | clap = "4.5.15"
8 | colored = "2.1.0"
9 | tree-sitter = "0.22.6"
10 | tree-sitter-rust = "0.21.2"
11 | tree-sitter-java = "0.21.0"
12 | tree-sitter-python = "0.21.0"
13 | tree-sitter-c = "0.21.4"
14 | tree-sitter-cpp = "0.22.3"
15 | tree-sitter-javascript = "0.21.4"
16 | tree-sitter-go = "0.21.2"
17 | tree-sitter-c-sharp = "0.21.3"
18 | tempfile = "3.12.0"
19 | prettytable = "0.10.0"
20 | indicatif = "0.17.8"
21 |
--------------------------------------------------------------------------------
/code-search/README.md:
--------------------------------------------------------------------------------
1 | ### Code-Search
2 |
3 | > 一个可以在命令行中使用的代码搜索引擎
4 |
5 | 项目移动至:[https://github.com/feint123/code-search](code-search)
6 |
--------------------------------------------------------------------------------
/dTools/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/dTools/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": [
3 | "Vue.volar",
4 | "tauri-apps.tauri-vscode",
5 | "rust-lang.rust-analyzer"
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/dTools/README.md:
--------------------------------------------------------------------------------
1 | # Tauri + Vue 3
2 |
3 | This template should help get you started developing with Tauri + Vue 3 in Vite. The template uses Vue 3 `
13 |