|
opened by fregante 15
This is a possible implementation for #453, we observe the DOM, if any new .blob-expanded nodes are added, then the extension is rerun.
As far as testing goes, I will wait for feedback, I added a single test that clickes the specific .js-expand element and then tries to process a single line from it.
Checklist:
- [ ] If this PR is a new feature, please provide at least one example link
- [x] Make sure all of the significant new logic is covered by tests
opened by leomoty 15
Plugin Solidity
Adds support for Solidity's import statement.
See this solidity file as an example.
You should be able to click "./IERC721.sol" within import "./IERC721.sol"; and see that file.
Demo
Todo
- [ ] Update
packages/blob-reader fixture to add Solidity support on issues highlighted code?
- [ ] Publish
@octolinker/plugin-solidity npm package
- [x] Add
export statement to the packages/core/load-plugins.js
- [x] Add
@octolinker/plugin-solidity to packages/core/package.json
opened by lucaperret 14
This is a relatively quick and dirty fix for https://github.com/OctoLinker/browser-extension/issues/106
There's still some work to be done (adding tests, adding more flexible shebang patterns, etc), but I wanted to get some feedback on the approach before putting more work into it. What do you think?
Work in progress to-discuss
opened by josephfrazier 14
First, thank you for joining our beta.
Below, you will find the highlights as well as the installation instructions for this beta build. If you come across any issues or if you have feedback to offer, please let us know. If everything is working great, that's also nice to hear.
Highlights
- Insert real href-links which the browser understands and applies the typical options you'd expect on. So you're able to e.g. right-click and open links in a new tab/window or middle-click the links, etc.
- Prefetch all links in the background. This is actually the key which enables all those exciting improvements.
- Use the GitHub API to fetch a tree structure of the repo to resolve relative links much faster and accurate than before.
- Navigate to relative files without a full page refresh using pjax
- Expanding the diff view invokes OctoLinker again to resolve missing imports
Beta installation
Note: The beta is currently only available for Google Chrome.
- Before installing the beta version, you need to disable or uninstall the current version of OctoLinker.
- Install the OctoLinker beta from Chrome Web Store.
opened by stefanbuck 13
I'm working on a new PR and since my last one something's changed and I'm no longer able to build. Before I started on this change I deleted my local repo and recloned from GitHub so the recent line ending change worked.
I can run yarn install , yarn lint and yarn test just fine, but yarn build , yarn watch , and yarn chrome-open all return errors.
I'm on Win10 and tried with both the regular console and powershell but both gave the same results.
I think https://github.com/OctoLinker/browser-extension/commit/e50f33972621e47af6e4f56afea6ac22128af3ea#diff-63ac5d48d83927921b7bcdb2b5a8d124 might be what broke this.
C:\dev\GitHub\browser-extension [master ≡ +0 ~2 -0 !]> yarn chrome-open
yarn run v1.3.2
$ npm run build && npm run chrome-launch --
> [email protected] build C:\dev\GitHub\browser-extension
> webpack
Hash: 7ce29e98274dd109223f
Version: webpack 3.6.0
Time: 2162ms
Asset Size Chunks Chunk Names
app.js 599 kB 0 [emitted] [big] app
options.js 183 kB 1 [emitted] options
background.js 25.8 kB 2 [emitted] background
app.js.map 759 kB 0 [emitted] app
options.js.map 231 kB 1 [emitted] options
background.js.map 32.6 kB 2 [emitted] background
manifest.json 935 bytes [emitted]
options.html 134 bytes [emitted]
icon.png 13.9 kB [emitted]
[1] ./lib/options/storage.js 1.31 kB {0} {1} {2} [built]
[20] ./package.json 2.56 kB {0} {2} [built]
[34] ./lib/app.js 204 bytes {0} [built]
[35] ./lib/octo-linker.js 1.42 kB {0} [built]
[38] ./packages/blob-reader/index.js 307 bytes {0} [built]
[40] ./lib/click-handler.js 3.08 kB {0} [built]
[42] ./lib/plugin-manager.js 2.08 kB {0} [built]
[46] ./lib/load-plugins.js 1.4 kB {0} [built]
[89] ./lib/app.css 1 kB {0} [built]
[91] ./lib/background/index.js 235 bytes {2} [built]
[92] ./lib/background/newTab.js 305 bytes {2} [built]
[93] ./lib/background/insight.js 1.76 kB {2} [built]
[97] ./lib/options/page.js 2.69 kB {1} [built]
[99] ./lib/options/options.css 1.03 kB {1} [built]
[100] ./node_modules/css-loader!./lib/options/options.css 375 bytes {1} [built]
+ 93 hidden modules
WARNING in ./lib/octo-linker.js
16:36-47 "export 'default' (imported as 'loadPlugins') was not found in './load-plugins'
> [email protected] chrome-launch C:\dev\GitHub\browser-extension
> ./scripts/chrome-launch.js
'.' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] chrome-launch: `./scripts/chrome-launch.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] chrome-launch script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\brian\AppData\Roaming\npm-cache\_logs\2017-12-27T22_52_12_720Z-debug.log
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
opened by xt0rted 13
Browser name: Firefox/Chrome
Browser version: 57.0/63.0.3239.84
OctoLinker version: 4.15.1
URL and line number where issue occurs:
Expected behavior: Trigger the extension when opening the file page in screen.
Actual behavior: It doesn't trigger the extension when opening the page using Octotree, it only works after reloading the page or entering by using github.com itself.
help wanted
opened by lucasbento 13
Bumps actions/checkout from 3.1.0 to 3.2.0.
Release notes
Sourced from actions/checkout's releases.
v3.2.0
What's Changed
New Contributors
Full Changelog: https://github.com/actions/checkout/compare/v3...v3.2.0
Changelog
Sourced from actions/checkout's changelog.
Changelog
Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase .
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase will rebase this PR
@dependabot recreate will recreate this PR, overwriting any edits that have been made to it
@dependabot merge will merge this PR after your CI passes on it
@dependabot squash and merge will squash and merge this PR after your CI passes on it
@dependabot cancel merge will cancel a previously requested merge and block automerging
@dependabot reopen will reopen this PR if it is closed
@dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
dependencies github_actions
opened by dependabot[bot] 0
Bumps puppeteer from 16.2.0 to 19.4.1.
Release notes
Sourced from puppeteer's releases.
puppeteer-core: v19.4.1
19.4.1 (2022-12-16)
Bug Fixes
- improve a11y snapshot handling if the tree is not correct (#9405) (02fe501), closes #9404
- remove oopif expectations and fix oopif flakiness (#9375) (810e0cd)
puppeteer: v19.4.1
19.4.1 (2022-12-16)
Miscellaneous Chores
- puppeteer: Synchronize puppeteer versions
Dependencies
- The following workspace dependencies were updated
- dependencies
- puppeteer-core bumped from 19.4.0 to 19.4.1
puppeteer-core: v19.4.0
19.4.0 (2022-12-07)
Features
- ability to send headers via ws connection to browser in node.js environment (#9314) (937fffa), closes #7218
- chromium: roll to Chromium 109.0.5412.0 (r1069273) (#9364) (1875da6), closes #9233
- puppeteer-core: keydown supports commands (#9357) (b7ebc5d)
Bug Fixes
puppeteer: v19.4.0
19.4.0 (2022-12-07)
Features
Dependencies
... (truncated)
Commits
848c849 chore: release main (#9395)
fe986c6 chore: trigger reindexing on doc deployment (#9425)
f0951aa docs: use a number of documented versions for indexing (#9424)
68c53df chore(deps): Bump loader-utils from 2.0.2 to 2.0.4 in /website (#9423)
69b03df chore(deps): Bump @angular-devkit/schematics from 15.0.3 to 15.0.4 (#9420)
fa05a1c chore(deps): Bump @angular-devkit/core from 15.0.3 to 15.0.4 (#9414)
0f0e717 chore(deps): Bump @angular-devkit/architect from 0.1402.10 to 0.1500.4 (#9415)
cd073ab chore(deps): Bump ws from 8.10.0 to 8.11.0 (#9412)
cd8eec3 chore(deps): Bump @angular-devkit/schematics from 14.2.8 to 15.0.3 (#9413)
28cedac chore: Revert Dependabot config (#9411)
- Additional commits viewable in compare view
Maintainer changes
This version was pushed to npm by google-wombot, a new releaser for puppeteer since your current version.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase .
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase will rebase this PR
@dependabot recreate will recreate this PR, overwriting any edits that have been made to it
@dependabot merge will merge this PR after your CI passes on it
@dependabot squash and merge will squash and merge this PR after your CI passes on it
@dependabot cancel merge will cancel a previously requested merge and block automerging
@dependabot reopen will reopen this PR if it is closed
@dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
dependencies javascript
opened by dependabot[bot] 0
Expected Behavior
https://microsoftedge.microsoft.com/addons/detail/octolinker/lbbanfffjfmfdahnfbklminikafhcjjb
Update to the latest version
What actually happened?
It's outdated.
URL
No response
Anything else we should know?
No response
bug
opened by chawyehsu 1
Bumps jest from 27.5.1 to 29.3.1.
Release notes
Sourced from jest's releases.
v29.3.1
Fixes
[jest-config] Do not warn about preset in ProjectConfig #13583
Performance
[jest-transform] Defer creation of cache directory #13420
v29.3.0
Features
[jest-runtime] Support WebAssembly (Wasm) imports in ESM modules (#13505)
Fixes
[jest-config] Add config validation for projects option (#13565)
[jest-mock] Treat cjs modules as objects so they can be mocked (#13513)
[jest-worker] Throw an error instead of hanging when jest workers terminate unexpectedly (#13566)
Chore & Maintenance
[@jest/transform] Update convert-source-map (#13509)
[docs] Mention toStrictEqual in UsingMatchers docs. (#13560)
New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v29.2.2...v29.3.0
v29.2.2
Fixes
[@jest/test-sequencer] Make sure sharding does not produce empty groups (#13476)
[jest-circus] Test marked as todo are shown as todo when inside a focussed describe (#13504)
[jest-mock] Ensure mock resolved and rejected values are promises from correct realm (#13503)
[jest-snapshot] Don't highlight passing asymmetric property matchers in snapshot diff (#13480)
Chore & Maintenance
[docs] Update link to Jest 28 upgrade guide in error message (#13483)
[jest-runner, jest-watcher] Update emittery (#13490)
New Contributors
... (truncated)
Changelog
Sourced from jest's changelog.
29.3.1
Fixes
[jest-config] Do not warn about preset in ProjectConfig #13583
Performance
[jest-transform] Defer creation of cache directory #13420
29.3.0
Features
[jest-runtime] Support WebAssembly (Wasm) imports in ESM modules (#13505)
Fixes
[jest-config] Add config validation for projects option (#13565)
[jest-mock] Treat cjs modules as objects so they can be mocked (#13513)
[jest-worker] Throw an error instead of hanging when jest workers terminate unexpectedly (#13566)
Chore & Maintenance
[@jest/transform] Update convert-source-map (#13509)
[docs] Mention toStrictEqual in UsingMatchers docs. (#13560)
29.2.2
Fixes
[@jest/test-sequencer] Make sure sharding does not produce empty groups (#13476)
[jest-circus] Test marked as todo are shown as todo when inside a focussed describe (#13504)
[jest-mock] Ensure mock resolved and rejected values are promises from correct realm (#13503)
[jest-snapshot] Don't highlight passing asymmetric property matchers in snapshot diff (#13480)
Chore & Maintenance
[docs] Update link to Jest 28 upgrade guide in error message (#13483)
[jest-runner, jest-watcher] Update emittery (#13490)
29.2.1
Features
[@jest/globals, jest-mock] Add jest.Spied* utility types (#13440)
Fixes
[jest-environment-node] make globalThis.performance writable for Node 19 and fake timers (#13467)
... (truncated)
Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase .
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase will rebase this PR
@dependabot recreate will recreate this PR, overwriting any edits that have been made to it
@dependabot merge will merge this PR after your CI passes on it
@dependabot squash and merge will squash and merge this PR after your CI passes on it
@dependabot cancel merge will cancel a previously requested merge and block automerging
@dependabot reopen will reopen this PR if it is closed
@dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
dependencies javascript
opened by dependabot[bot] 0
While setting up a project recently I found myself having to link to the extensions I was adding in the PR so it was easier to review and figured it might be nice if we linked to them too.
From what I've found there's no easy API we can query to try to get the repo link for these which is kind of annoying. Here's all I was able to find on it https://github.com/microsoft/vsmarketplace/issues/238.
Some example files I used while adding this in:
- https://github.com/actions/go-dependency-submission/blob/main/.devcontainer/devcontainer.json
- https://github.com/actions/runner/blob/main/.devcontainer/devcontainer.json
- https://github.com/microsoft/TypeScript/blob/main/.vscode/extensions.json
Checklist:
- [x] If this PR is a new feature, please provide at least one example link
- [x] Make sure all of the significant new logic is covered by tests
opened by xt0rted 1
Add support for linking action workflows in the new actions UI. This is more of a proof of concept, but figured I'd PR it for feedback. Unfortunately there's no other classes or attributes I can see that would let us get this link like we do on the source pages.
Example: https://github.com/OctoLinker/OctoLinker/actions/runs/3457001003/workflow
Checklist:
- [ ] If this PR is a new feature, please provide at least one example link
- [ ] Make sure all of the significant new logic is covered by tests
opened by xt0rted 0
-
-
-
v6.10.3(Apr 7, 2022)
What's Changed
- Force .sh files to have LF line endings by @xt0rted in https://github.com/OctoLinker/OctoLinker/pull/1454
- Support built-in packages with
node: prefix by @xt0rted in https://github.com/OctoLinker/OctoLinker/pull/1467
- Remove unused code by @xt0rted in https://github.com/OctoLinker/OctoLinker/pull/1476
- Add support for action workflow templates by @xt0rted in https://github.com/OctoLinker/OctoLinker/pull/1475
- Add support for any docker registry by @stefanbuck in https://github.com/OctoLinker/OctoLinker/pull/1458
- Remove unnecessary awaits and convert to es module by @xt0rted in https://github.com/OctoLinker/OctoLinker/pull/1486
- Link github actions to their pinned version by @xt0rted in https://github.com/OctoLinker/OctoLinker/pull/1495
- Improve Safari app icons by @fregante in https://github.com/OctoLinker/OctoLinker/pull/1521
- Add concurrency settings by @xt0rted in https://github.com/OctoLinker/OctoLinker/pull/1537
- Update resolve url by @xt0rted in https://github.com/OctoLinker/OctoLinker/pull/1536
- Remove update notification by @stefanbuck in https://github.com/OctoLinker/OctoLinker/pull/1538
- New release flow by @stefanbuck in https://github.com/OctoLinker/OctoLinker/pull/1540
Full Changelog: https://github.com/OctoLinker/OctoLinker/compare/v6.10.2...v6.10.3
Source code(tar.gz) Source code(zip) octolinker-6.10.3.tar.gz(182.80 KB)
-
-
-
-
-
-
v6.8.0(Dec 29, 2020)
Try out pre-release features with feature preview
You can now opt in and out of pre-release features such as "Better PHP support". from the extensions settings page.
Better PHP support (feature preview)
This is our first feature preview that enables linking of the use statements for the following projects:
- Symfony
- Laravel
- Doctrine
- CakePHP
- PHPUnit
Usage statistics on settings page
Since #917 we track the usage of OctoLinker by increasing a counter whenever a user follows a link. All statistics data are stored in the users browser (local) using the Storage API. This PR makes this statistics accessible by adding a new section to the settings page.
As always, if you come across any issues or if you have feedback to offer, please let us know. If everything is working great, that's also nice to hear – @OctoLinker
Source code(tar.gz) Source code(zip)
-
v6.7.0(Nov 16, 2020)
Feature
- Add support for rlang #1084 by @edavidaja
- Add support for clitools in paket (.Net) #1065 by @xt0rted
Fix
- Prevent chrome from crashing #1122 by @stefanbuck
- Adjust toast position for Octotree #1123 by @stefanbuck
Housekeeping
- Refactor code to use relativeFile function #1052 by @vinmaster
- Update package name jsonpath-plus #1072 by @xt0rted
- Remove unused codecov dependency #1071 by @xt0rted
- Use main branch in dev urls #1068 by @xt0rted
- Update repo url for env_logger #1096 by @xt0rted
- Add resolve checks to codeowners tests #1069 by @xt0rted
- Count total OctoLinker links while running e2e tests #1097 by @stefanbuck
- The return value from a resolve needs to be an array #1067 by @stefanbuck
Like what we do?
Unlike many other browser extensions, OctoLinker is maintained and constantly updated since 2013. Please consider supporting our ongoing efforts. Thank you.
- @xt0rted Core contributor
- @stefanbuck Creator of OctoLinker
Source code(tar.gz) Source code(zip)
-
v6.6.0(Oct 7, 2020)
If this release deserves a name, I would call it Brian aka @xt0rted. Brian's contributions are remarkable and I'm so grateful for his contributions and help. Thank you Brian!
PHP
Until now, support for PHP was limited to composer files. We want to change this! This release adds support for classes and functions that will link to their respective php.net page.
use ArrayAccess; // => https://www.php.net/manual/en/class.arrayaccess.php
use function preg_last_error; // => https://www.php.net/manual/en/function.preg-last-error.php
Added in #1033 by @stefanbuck
Paket
Paket is a dependency manager for .NET projects. OctoLinker links dependencies defined in paket.dependencies , paket.local or paket.references file like we do for package.json files.
nuget Chessie >= 0.6 // => https://www.nuget.org/packages/Chessie
github fsharp/FAKE modules/Octokit/Octokit.fsx // => https://github.com/fsharp/FAKE/blob/master/modules/Octokit/Octokit.fsx
Added in #1064 by @xt0rted
Other improvements
- Ruby require_relative fixes #1014 by @MatthewDG
- Add support for url() values in css #905 by @xt0rted
- Add support for docker hub actions #1024 by @xt0rted
- Support extensionless less imports #1034 by @xt0rted
- Exclude urls from css imports #1036 by @xt0rted
Housekeeping
- Rename dotnet packages for consistency #1051 by @vinmaster
- Update all repo urls to use main #1053 by @xt0rted
- Creating annotations for failed e2e tests #1063 by @xt0rted
- Add e2e test NOT annotation #1046 by @stefanbuck
- Ensure release note is updated #1050 by @stefanbuck
Like what we do?
Unlike many other browser extensions, OctoLinker is maintained and constantly updated since 2013. Please consider supporting our ongoing efforts. Thank you.
- @xt0rted Core contributor
- @stefanbuck Creator of OctoLinker
Source code(tar.gz) Source code(zip)
-
v6.5.0(Aug 19, 2020)
This release contains two improvements.
@xt0rted added better GitHub Actions support which adds links for local Actions in the current repo, as well as actions that have sub actions which are located in a sub folder for the given action #943
@stefanbuck worked on better OctoLinker notifications which is addressing #918 along with other improvements to make the notification less intrusive #975. Notifications will now appear in the bottom left corner in a new look and feel. Also dismissed, notification will be hidden for a period of time, if you're visiting a private repo without GitHub token or the token is invalid.
Unlike many other browser extensions, OctoLinker is maintained and constantly updated since 2013. Please consider supporting our ongoing efforts. Thank you.
All changes v6.4.0...v6.5.0
Source code(tar.gz) Source code(zip)
-
v6.4.0(Apr 30, 2020)
Svelte support + settings page with dark mode
Features
- Add support for .svelte files #898 by @xt0rted
- Add dark color scheme support in the options #895 by @fregante
- Track personal usage of OctoLinker #917 @stefanbuck
Housekeeping
- Drop CI env variable from GHA Workflow #896 by @fregante
All changes v6.3.0...v6.4.0
Like what we do? ❤️❤️❤️
Does OctoLinker make your life easier? Support us with a monthly donation.
Source code(tar.gz) Source code(zip)
-
-
v6.3.0(Apr 12, 2020)
Hovercard, Go Modules and new permission
New permission
As you might have been noticed, OctoLinker requires a new permission to access https://github.com. We explain in detail why this change was needed.
Highlight
We're thrilled to share this exciting new feature of OctoLinker with you. A hovercard that give you a sense of the linked GitHub repository. It holds the repository description, number of stars and forks, last update date and the primary language. Looks familiar, doesn't it? We borrowed this feature from GitHub.com. Check out #869 for implementation details.
Other improvements
- Support for Go Modules #879 by @StarpTech
- Support spaces in .net file paths #836
Housekeeping
- Use some shortcuts in the versioning script #866 by @fregante
- Bump prettier from 1.19.1 to 2.0.4 #873
All changes v6.2.2...v6.3.0
Source code(tar.gz) Source code(zip)
-
-
-
v6.2.0(Mar 31, 2020)
Cargo.toml support and other minor improvements
Features
- Add support for cargo.toml files #858 Thanks @xt0rted
Minor improvements
- Persist update notification on reload #839
- Add hint to disable OctoLinker for private repos #838
Bugfixes
- Do not pare suggested code changes block #837
Housekeeping
- Use relative resolver for nodejs plugin #840
- Various dependencies upgrades see all changes
All changes v6.1.0...v6.2.0
Source code(tar.gz) Source code(zip)
-
v6.1.0(Mar 7, 2020)
Bug fixes and much better .net support
Features
- Add support for .net references #808
- Add support for .net global tool configs #807
- Add support for .net project & file references #789
Bugfixes
- Fix linking of PR reviews comment #829
- Fix linking for duplicates in PR view #811
Housekeeping
- Bump actions/checkout from v1 to v2 #810
- Disable no-console warnings #809
- Add tests for plugin-dot-net-project #806
All changes v6.0.0...v6.1.0
Source code(tar.gz) Source code(zip)
-
v6.0.0(Jan 28, 2020)
Faster, better and more precisely than ever before
I'm extremely excited about today's release, but before we jump into the release notes for version 6 I want to welcome @xt0rted to the team. He has contributed several improvements ranging from bug fixes to adding .NET support and many other improvements. Welcome Brian 👋
What's new in v6
Originally this release was all about performance, but unintentionally it fixed other issues as well.
Back in June last year, @fregante opened an issue with the title "A script in the extension "OctoLinker" is causing Firefox to slow down". Until then, I wasn't aware OctoLinker was slow in Firefox.
OctoLinker uses a library called findAndReplaceDOMText which allows us to apply regular expression against the DOM and wraps each match with a link (now you know our secret sauce). Traversing the DOM for larger files took some time (especially on Firefox). In some circumstances, this even caused Firefox to freeze. This was caused by too many DOM lookups when applying the same regular expression over and over again to find keywords in the DOM.
DOM parsing in OctoLinker v5
DOM lookups are expensive and the root cause of this performance problem. Our solution to this is a new step before traversing the DOM. All regular expressions are performed against a string representation first followed by a very targeted DOM query to take online lines into account with a match. This speeds it up significantly.
DOM parsing in OctoLinker v6
This reduced the processing time by ~80% on large files and by ~30% for medium size files. In addition, we cap files to the first 5.000 lines to support enormous files with tens of thousand lines.
Other improvements
- OctoLinker now support for CODEOWNERS file #786
- Link dependencies in a package.json file with a version value of "latest" #791
- Expand .NET and nuget support #785 #787
- Link dependencies in a package.json file with a version value of
gihtub:user/repo #794
- Link dependencies in a package.json file with a git url set as version value #793
- Improve UX when adding token through settings dialog #783
Bugfix
- Fix OctoLinker mascot position in notification bar #782
- Inconsistent linking when value appears on both sides of an assignment #618
- Package name in a js template literal disappears #590
- Commit comment elements are being parsed as dependencies and turned into links #454
Closing Thoughts
I am truly grateful to all the wonderful humans and companies supporting the development of OctoLinker. If you find OctoLinker useful, please consider donations through GitHub Sponsors or Open Collective – Thank you 🙇♂️
Source code(tar.gz) Source code(zip)
-
-
-
-
-
-
-
-
-
-
3 Aug 24, 2021
72 Jan 3, 2023
104 Dec 20, 2022
466 Dec 21, 2022
0 Dec 26, 2021
18 Nov 9, 2021
50 Dec 15, 2021
1.3k Dec 22, 2022
22 Feb 8, 2022
3 Oct 2, 2022
5 Nov 19, 2021
47 Oct 27, 2022
1 May 5, 2022
2 Aug 4, 2022
6 Dec 22, 2022
6 May 31, 2023
3 Apr 5, 2018
24 Nov 2, 2022
1 Nov 23, 2021
6.4k Dec 29, 2022
|