├── .eslintrc.js ├── .github ├── dependabot.yml └── workflows │ ├── Automerge.yml │ └── CI.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── lib ├── minimap-bookmarks-binding.js └── minimap-bookmarks.js ├── package-lock.json ├── package.json ├── release.config.js ├── screenshot.gif ├── spec ├── fixtures │ └── sample.js ├── minimap-bookmarks-spec.js └── runner.js └── styles └── minimap-bookmarks.less /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | es6: true, 4 | browser: true, 5 | node: true, 6 | jasmine: true, 7 | atomtest: true, 8 | }, 9 | extends: [ 10 | 'standard', 11 | ], 12 | globals: { 13 | atom: 'readonly', 14 | }, 15 | parserOptions: { 16 | ecmaVersion: 2018, 17 | }, 18 | rules: { 19 | 'no-warning-comments': 'warn', 20 | 'comma-dangle': ['error', 'always-multiline'], 21 | indent: ['error', 'tab', { SwitchCase: 1 }], 22 | 'no-tabs': ['error', { allowIndentationTabs: true }], 23 | 'no-restricted-globals': [ 24 | 'error', 25 | { 26 | name: 'fit', 27 | message: 'Do not commit focused tests.', 28 | }, 29 | { 30 | name: 'fdescribe', 31 | message: 'Do not commit focused tests.', 32 | }, 33 | ], 34 | 'no-sync': 'error', 35 | }, 36 | } 37 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "weekly" 7 | - package-ecosystem: "npm" 8 | versioning-strategy: "increase" 9 | directory: "/" 10 | schedule: 11 | interval: "weekly" 12 | -------------------------------------------------------------------------------- /.github/workflows/Automerge.yml: -------------------------------------------------------------------------------- 1 | name: "Automerge" 2 | on: 3 | workflow_run: 4 | workflows: 5 | - CI 6 | types: 7 | - completed 8 | 9 | jobs: 10 | Automerge: 11 | runs-on: ubuntu-latest 12 | if: | 13 | github.event.workflow_run.event == 'pull_request' && 14 | github.event.workflow_run.conclusion == 'success' 15 | steps: 16 | - name: 'Merge PR' 17 | uses: actions/github-script@v6 18 | with: 19 | github-token: ${{ secrets.GITHUB_TOKEN }} 20 | script: | 21 | const pr = await github.rest.pulls.get({ 22 | owner: context.repo.owner, 23 | repo: context.repo.repo, 24 | pull_number: context.payload.workflow_run.pull_requests[0].number, 25 | }); 26 | if (!pr.data.title.startsWith('chore(deps-dev):')) { 27 | console.log('Not Merged 🚫'); 28 | console.log(`Title '${pr.data.title}' does not start with 'chore(deps-dev):'`); 29 | } else if (pr.data.user.login !== 'dependabot[bot]') { 30 | console.log('Not Merged 🚫'); 31 | console.log(`User '${pr.data.user.login}' does not equal 'dependabot[bot]'`); 32 | } else { 33 | await github.rest.pulls.merge({ 34 | owner: context.repo.owner, 35 | repo: context.repo.repo, 36 | pull_number: context.payload.workflow_run.pull_requests[0].number, 37 | }); 38 | console.log('Merged 🎉'); 39 | } 40 | -------------------------------------------------------------------------------- /.github/workflows/CI.yml: -------------------------------------------------------------------------------- 1 | name: "CI" 2 | on: 3 | pull_request: 4 | push: 5 | branches: 6 | - master 7 | 8 | env: 9 | CI: true 10 | 11 | jobs: 12 | Test: 13 | if: "!contains(github.event.head_commit.message, '[skip ci]')" 14 | strategy: 15 | matrix: 16 | os: [ubuntu-latest, macos-latest, windows-latest] 17 | channel: [stable, beta] 18 | fail-fast: false 19 | runs-on: ${{ matrix.os }} 20 | steps: 21 | - uses: actions/checkout@v3 22 | - uses: UziTech/action-setup-atom@v1 23 | with: 24 | channel: ${{ matrix.channel }} 25 | - name: Atom version 26 | run: atom -v 27 | - name: APM version 28 | run: apm -v 29 | - name: Install package dependencies 30 | run: apm i minimap bookmarks 31 | - name: Install dependencies 32 | run: apm ci 33 | - name: Run tests 👩🏾‍💻 34 | run: atom --test spec 35 | 36 | Lint: 37 | if: "!contains(github.event.head_commit.message, '[skip ci]')" 38 | runs-on: ubuntu-latest 39 | steps: 40 | - uses: actions/checkout@v3 41 | - uses: actions/setup-node@v3 42 | with: 43 | node-version: '*' 44 | - name: NPM install 45 | run: npm ci 46 | - name: Lint ✨ 47 | run: npm run lint 48 | 49 | Release: 50 | needs: [Test, Lint] 51 | if: | 52 | github.ref == 'refs/heads/master' && 53 | github.event.repository.fork == false 54 | runs-on: ubuntu-latest 55 | steps: 56 | - uses: actions/checkout@v3 57 | - uses: UziTech/action-setup-atom@v1 58 | - uses: actions/setup-node@v3 59 | with: 60 | node-version: '*' 61 | - name: NPM install 62 | run: npm ci 63 | - name: Release 🎉 64 | env: 65 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 66 | ATOM_ACCESS_TOKEN: ${{ secrets.ATOM_ACCESS_TOKEN }} 67 | run: npx semantic-release 68 | 69 | Skip: 70 | if: contains(github.event.head_commit.message, '[skip ci]') 71 | runs-on: ubuntu-latest 72 | steps: 73 | - name: Skip CI 🚫 74 | run: echo skip ci 75 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | npm-debug.log 3 | node_modules 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [0.4.6](https://github.com/atom-minimap/minimap-bookmarks/compare/v0.4.5...v0.4.6) (2021-01-18) 2 | 3 | 4 | ### Bug Fixes 5 | 6 | * **deps:** bump atom-package-deps from 7.0.3 to 7.1.0 ([#23](https://github.com/atom-minimap/minimap-bookmarks/issues/23)) ([372097d](https://github.com/atom-minimap/minimap-bookmarks/commit/372097dc2a5adfc5ba4737a9d5d2a285ccd6d877)) 7 | 8 | ## [0.4.5](https://github.com/atom-minimap/minimap-bookmarks/compare/v0.4.4...v0.4.5) (2020-12-14) 9 | 10 | 11 | ### Bug Fixes 12 | 13 | * **deps:** bump atom-package-deps from 7.0.2 to 7.0.3 ([#17](https://github.com/atom-minimap/minimap-bookmarks/issues/17)) ([cda4773](https://github.com/atom-minimap/minimap-bookmarks/commit/cda4773acdd56c1a0ff62a0d67cff2352e173d95)) 14 | 15 | ## [0.4.4](https://github.com/atom-minimap/minimap-bookmarks/compare/v0.4.3...v0.4.4) (2020-12-10) 16 | 17 | 18 | ### Bug Fixes 19 | 20 | * Optimizations ([#14](https://github.com/atom-minimap/minimap-bookmarks/issues/14)) ([e71bd8d](https://github.com/atom-minimap/minimap-bookmarks/commit/e71bd8d8974cdd576aeccc9ec0938a8f5b70b193)) 21 | 22 | ## [0.4.3](https://github.com/atom-minimap/minimap-bookmarks/compare/v0.4.2...v0.4.3) (2020-11-28) 23 | 24 | 25 | ### Bug Fixes 26 | 27 | * add minimap as dependency ([927c0ac](https://github.com/atom-minimap/minimap-bookmarks/commit/927c0ac31a5ce0b457aaa322209de724c6d04f3a)) 28 | * decaffeinate ([d9ad626](https://github.com/atom-minimap/minimap-bookmarks/commit/d9ad626ab2a556290da613ee408e4e64ad524307)) 29 | 30 | 31 | # v0.4.2 (2016-08-31) 32 | 33 | ## :bug: Bug Fixes 34 | 35 | - Fix access to bookmarks markers's layer ([22a5eef8](https://github.com/atom-minimap/minimap-bookmarks/commit/22a5eef8968f54b96373d57027779e55bfaa6d3f), [#5](https://github.com/atom-minimap/minimap-bookmarks/issues/5)) 36 | 37 | 38 | # v0.4.1 (2016-08-23) 39 | 40 | ## :bug: Bug Fixes 41 | 42 | - Fix typo ([23a28d2e](https://github.com/atom-minimap/minimap-bookmarks/commit/23a28d2e9f5bb4c34ee41ea398df65551eceadcf)) 43 | 44 | 45 | 46 | # v0.4.0 (2016-08-23) 47 | 48 | ## :bug: Bug Fixes 49 | 50 | - Fix raise error while checking editor.displayBuffer, because `TextEditor.prototype.displayBuffer` has always been private, #5 ([83c9217b](https://github.com/atom-minimap/minimap-bookmarks/commit/83c9217bb2ba12e3364dd9f6be6b9f2087f6801b)) 51 | - Fix test cases, #5 ([15b05f71](https://github.com/atom-minimap/minimap-bookmarks/commit/15b05f71bd47eb1f0b2fe60fc8cf9f25e5be516e)) 52 | - Fix bookmarks not appear, #5 ([f19d323d](https://github.com/atom-minimap/minimap-bookmarks/commit/f19d323dc12be92b143a8300c2373c20e08f8e62)) 53 | 54 | 55 | 56 | # v0.3.1 (2016-05-07) 57 | 58 | ## :bug: Bug Fixes 59 | 60 | - Fix error raised with display layer version ([5de44c84](https://github.com/atom-minimap/minimap-bookmarks/commit/5de44c844a67c73380c6b71c1f9eebb4da3b518a)) 61 | 62 | 63 | 64 | # v0.3.0 (2016-03-07) 65 | 66 | ## :sparkles: Features 67 | 68 | - Add plugin origin to created decorations ([0fef7557](https://github.com/atom-minimap/minimap-bookmarks/commit/0fef7557095d1c9f8a3dba00012ae6a7949aa7aa)) 69 | 70 | 71 | # 0.2.0 (2015-12-11) 72 | 73 | ## :sparkles: Features 74 | 75 | - Implement destroying bindings on deactivation ([a58c8508](https://github.com/atom-minimap/minimap-bookmarks/commit/a58c8508dcf1e7e65bb1f86d6e07bb1639a26f9d)) 76 | - Implement retrieving existing markers and destroying decorations along binding ([3dc7ae07](https://github.com/atom-minimap/minimap-bookmarks/commit/3dc7ae07d6179be70fc823c953c68cb8e0c986ff)) 77 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # minimap-bookmarks package 2 | 3 | [![Build Status](https://github.com/atom-minimap/minimap-bookmarks/workflows/CI/badge.svg)](https://github.com/atom-minimap/minimap-bookmarks/actions) 4 | 5 | Displays Atom bookmarks in the minimap. 6 | 7 | ![Minimap Bookmarks Screenshot](https://github.com/atom-minimap/minimap-bookmarks/blob/master/screenshot.gif?raw=true) 8 | 9 | Customization 10 | 11 | If you want to change the color of the minimap bookmarks use the following CSS rules in your user stylesheet: 12 | 13 | ```css 14 | .minimap .bookmark { 15 | background: #09C; 16 | } 17 | ``` 18 | -------------------------------------------------------------------------------- /lib/minimap-bookmarks-binding.js: -------------------------------------------------------------------------------- 1 | const { CompositeDisposable } = require('atom') 2 | 3 | class MinimapBookmarksBinding { 4 | constructor (minimap, bookmarks) { 5 | this.minimap = minimap 6 | this.bookmarks = bookmarks 7 | if ((this.minimap == null) || (this.bookmarks == null)) { return } 8 | 9 | this.subscriptions = new CompositeDisposable() 10 | this.editor = this.minimap.getTextEditor() 11 | this.decorationsByMarkerId = new Map() 12 | this.decorationSubscriptionsByMarkerId = new Map() 13 | 14 | // We need to wait until the bookmarks package had created its marker 15 | // layer before retrieving its id from the state. 16 | requestAnimationFrame(() => { 17 | // Also, targeting private properties on atom.packages is very brittle. 18 | // DO NOT DO THAT! 19 | // 20 | // If we really have to get the marker layer id from the 21 | // state (which can already break easily) it's better to get it from the 22 | // package `serialize` method since it's an API that is public and is 23 | // unlikely to change in a near future. 24 | const bookmarks = this.bookmarks.serialize()[this.editor.id] 25 | if (!bookmarks) { return } 26 | 27 | const markerLayer = this.editor.getMarkerLayer(bookmarks.markerLayerId) 28 | 29 | if (!markerLayer) { return } 30 | 31 | this.subscriptions.add(markerLayer.onDidCreateMarker(marker => { 32 | this.handleMarker(marker) 33 | })) 34 | 35 | markerLayer.findMarkers().forEach(marker => this.handleMarker(marker)) 36 | }) 37 | } 38 | 39 | handleMarker (marker) { 40 | const { id } = marker 41 | const decoration = this.minimap.decorateMarker(marker, { type: 'line', class: 'bookmark', plugin: 'bookmarks' }) 42 | this.decorationsByMarkerId.set(id, decoration) 43 | this.decorationSubscriptionsByMarkerId.set(id, 44 | decoration.onDidDestroy(() => { 45 | this.decorationSubscriptionsByMarkerId.get(id).dispose() 46 | 47 | this.decorationsByMarkerId.delete(id) 48 | this.decorationSubscriptionsByMarkerId.delete(id) 49 | }), 50 | ) 51 | } 52 | 53 | destroy () { 54 | const ids = this.decorationsByMarkerId.keys() 55 | for (const id of ids) { 56 | const decoration = this.decorationsByMarkerId.get(id) 57 | this.decorationSubscriptionsByMarkerId.get(id).dispose() 58 | decoration.destroy() 59 | 60 | this.decorationsByMarkerId.delete(id) 61 | this.decorationSubscriptionsByMarkerId.delete(id) 62 | } 63 | 64 | this.subscriptions.dispose() 65 | } 66 | } 67 | 68 | module.exports = MinimapBookmarksBinding 69 | -------------------------------------------------------------------------------- /lib/minimap-bookmarks.js: -------------------------------------------------------------------------------- 1 | /* 2 | * decaffeinate suggestions: 3 | * DS102: Remove unnecessary code created because of implicit returns 4 | * DS201: Simplify complex destructure assignments 5 | * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md 6 | */ 7 | const { CompositeDisposable } = require('atom') 8 | let MinimapBookmarksBinding 9 | 10 | module.exports = { 11 | isActive () { 12 | return this.active 13 | }, 14 | 15 | activate () { 16 | this.active = false 17 | this.subscriptions = new CompositeDisposable() 18 | this.bindings = new Map() 19 | require('atom-package-deps').install('minimap-git-diff') 20 | }, 21 | 22 | consumeMinimapServiceV1 (minimap) { 23 | this.minimap = minimap 24 | this.minimap.registerPlugin('bookmarks', this) 25 | }, 26 | 27 | deactivate () { 28 | if (this.minimap) { 29 | this.minimap.unregisterPlugin('bookmarks') 30 | } 31 | this.minimap = null 32 | }, 33 | 34 | activatePlugin () { 35 | if (this.active) { 36 | return 37 | } 38 | 39 | const bookmarksPkg = atom.packages.getLoadedPackage('bookmarks') 40 | if (!bookmarksPkg) { 41 | return 42 | } 43 | const bookmarks = bookmarksPkg.mainModule 44 | this.active = true 45 | 46 | this.minimapsSubscription = this.minimap.observeMinimaps(minimap => { 47 | if (!MinimapBookmarksBinding) { 48 | MinimapBookmarksBinding = require('./minimap-bookmarks-binding') 49 | } 50 | 51 | const binding = new MinimapBookmarksBinding(minimap, bookmarks) 52 | this.bindings.set(minimap.id, binding) 53 | 54 | const subscription = minimap.onDidDestroy(() => { 55 | binding.destroy() 56 | this.subscriptions.remove(subscription) 57 | subscription.dispose() 58 | this.bindings.delete(minimap.id) 59 | }) 60 | this.subscriptions.add(subscription) 61 | }) 62 | }, 63 | 64 | deactivatePlugin () { 65 | if (!this.active) { return } 66 | 67 | const bindings = this.bindings.values() 68 | for (const binding of bindings) { binding.destroy() } 69 | this.bindings.clear() 70 | this.active = false 71 | this.minimapsSubscription.dispose() 72 | this.subscriptions.dispose() 73 | }, 74 | } 75 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "minimap-bookmarks", 3 | "main": "./lib/minimap-bookmarks", 4 | "version": "0.4.6", 5 | "description": "Displays Atom bookmarks in the minimap", 6 | "repository": "https://github.com/atom-minimap/minimap-bookmarks", 7 | "license": "MIT", 8 | "keywords": [ 9 | "minimap", 10 | "bookmarks", 11 | "bookmark" 12 | ], 13 | "engines": { 14 | "atom": ">=1.20.0" 15 | }, 16 | "scripts": { 17 | "test": "atom --test spec", 18 | "lint": "eslint ." 19 | }, 20 | "atomTestRunner": "./spec/runner.js", 21 | "package-deps": [ 22 | { 23 | "name": "minimap" 24 | }, 25 | { 26 | "name": "bookmarks" 27 | } 28 | ], 29 | "dependencies": { 30 | "atom-package-deps": "^8.0.0" 31 | }, 32 | "devDependencies": { 33 | "@semantic-release/apm-config": "^8.0.0", 34 | "atom-jasmine3-test-runner": "^5.2.13", 35 | "eslint": "^7.32.0", 36 | "eslint-config-standard": "^16.0.3", 37 | "eslint-plugin-import": "^2.26.0", 38 | "eslint-plugin-node": "^11.1.0", 39 | "eslint-plugin-promise": "^5.2.0", 40 | "eslint-plugin-react": "^7.31.11", 41 | "semantic-release": "^19.0.5" 42 | }, 43 | "consumedServices": { 44 | "minimap": { 45 | "versions": { 46 | "1.0.0": "consumeMinimapServiceV1" 47 | } 48 | } 49 | }, 50 | "activationHooks": [ 51 | "core:loaded-shell-environment" 52 | ] 53 | } 54 | -------------------------------------------------------------------------------- /release.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: '@semantic-release/apm-config', 3 | } 4 | -------------------------------------------------------------------------------- /screenshot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atom-minimap/minimap-bookmarks/1b27bd7bff7af1096b855892f15a4dc11f7d2bfc/screenshot.gif -------------------------------------------------------------------------------- /spec/fixtures/sample.js: -------------------------------------------------------------------------------- 1 | /** @babel */ 2 | 3 | export const a = 1 4 | -------------------------------------------------------------------------------- /spec/minimap-bookmarks-spec.js: -------------------------------------------------------------------------------- 1 | const MinimapBookmarks = require('../lib/minimap-bookmarks') 2 | 3 | describe('MinimapBookmarks', () => { 4 | let editor, editorElement, bookmarks 5 | 6 | const bookmarkedRangesForEditor = (editor) => { 7 | const obj = editor.decorationsStateForScreenRowRange(0, editor.getLastScreenRow()) 8 | return Object.keys(obj) 9 | .map(k => obj[k]) 10 | .filter(decoration => decoration.properties.class === 'bookmarked') 11 | .map(decoration => decoration.screenRange) 12 | } 13 | 14 | beforeEach(async () => { 15 | const workspace = atom.views.getView(atom.workspace) 16 | jasmine.attachToDOM(workspace) 17 | 18 | // Package activation will be deferred to the configured, activation hook, which is then triggered 19 | // Activate activation hook 20 | atom.packages.triggerDeferredActivationHooks() 21 | atom.packages.triggerActivationHook('core:loaded-shell-environment') 22 | 23 | editor = await atom.workspace.open('sample.js') 24 | editorElement = atom.views.getView(editor) 25 | 26 | bookmarks = (await atom.packages.activatePackage('bookmarks')).mainModule 27 | 28 | await atom.packages.activatePackage('minimap') 29 | await atom.packages.activatePackage('minimap-bookmarks') 30 | 31 | atom.packages.packageStates.bookmarks = bookmarks.serialize() 32 | }) 33 | 34 | it('should activate', () => { 35 | expect(MinimapBookmarks.isActive()).toBe(true) 36 | }) 37 | 38 | describe('with an open editor that have a minimap', () => describe('when toggle switch bookmarks markers to the editor', () => { 39 | beforeEach(() => { 40 | editor.setCursorScreenPosition([2, 0]) 41 | atom.commands.dispatch(editorElement, 'bookmarks:toggle-bookmark') 42 | 43 | editor.setCursorScreenPosition([3, 0]) 44 | atom.commands.dispatch(editorElement, 'bookmarks:toggle-bookmark') 45 | 46 | editor.setCursorScreenPosition([1, 0]) 47 | atom.commands.dispatch(editorElement, 'bookmarks:toggle-bookmark') 48 | atom.commands.dispatch(editorElement, 'bookmarks:toggle-bookmark') 49 | }) 50 | 51 | it('creates tow markers', () => { 52 | expect(bookmarkedRangesForEditor(editor).length).toBe(2) 53 | }) 54 | 55 | it('creates state of bookmarks', () => { 56 | expect(Object.keys(atom.packages.packageStates.bookmarks).length).toBe(1) 57 | }) 58 | 59 | it('gets markerLayerId from state of bookmarks by editorId', () => { 60 | const { markerLayerId } = atom.packages.packageStates.bookmarks[editor.id] 61 | 62 | expect(markerLayerId).toBeDefined() 63 | }) 64 | 65 | it('finds marks by markerLayerId', () => { 66 | const { markerLayerId } = atom.packages.packageStates.bookmarks[editor.id] 67 | const markerLayer = editor.getMarkerLayer(markerLayerId) 68 | expect(markerLayer.findMarkers().length).toBe(2) 69 | }) 70 | })) 71 | }) 72 | -------------------------------------------------------------------------------- /spec/runner.js: -------------------------------------------------------------------------------- 1 | const { createRunner } = require('atom-jasmine3-test-runner') 2 | 3 | module.exports = createRunner({ 4 | specHelper: { 5 | attachToDom: true, 6 | ci: true, 7 | }, 8 | testPackages: ['minimap'], 9 | }) 10 | -------------------------------------------------------------------------------- /styles/minimap-bookmarks.less: -------------------------------------------------------------------------------- 1 | // The ui-variables file is provided by base themes provided by Atom. 2 | // 3 | // See https://github.com/atom/atom-dark-ui/blob/master/stylesheets/ui-variables.less 4 | // for a full listing of what's available. 5 | @import "ui-variables"; 6 | 7 | .minimap .bookmark { 8 | contain: layout size paint style; 9 | background: @background-color-info; 10 | } 11 | --------------------------------------------------------------------------------