├── .gitignore ├── release.config.js ├── screenshot.png ├── spec ├── runner.js └── minimap-git-diff-spec.js ├── .github ├── dependabot.yml └── workflows │ ├── Automerge.yml │ ├── CI.yml │ └── codeql-analysis.yml ├── lib ├── helpers.js ├── minimap-git-diff.js └── minimap-git-diff-binding.js ├── README.md ├── .eslintrc.js ├── styles └── minimap-git-diff.less ├── LICENSE.md ├── package.json └── CHANGELOG.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | npm-debug.log 3 | node_modules 4 | -------------------------------------------------------------------------------- /release.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: '@semantic-release/apm-config', 3 | } 4 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atom-minimap/minimap-git-diff/HEAD/screenshot.png -------------------------------------------------------------------------------- /spec/runner.js: -------------------------------------------------------------------------------- 1 | const { createRunner } = require('atom-jasmine3-test-runner') 2 | 3 | module.exports = createRunner({ 4 | specHelper: { 5 | attachToDom: true, 6 | }, 7 | testPackages: ['minimap'], 8 | }) 9 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /lib/helpers.js: -------------------------------------------------------------------------------- 1 | const { Directory } = require('atom') 2 | 3 | module.exports = { 4 | repositoryForPath (goalPath) { 5 | if (goalPath) { 6 | const directory = new Directory(goalPath) 7 | return atom.project.repositoryForDirectory(directory) 8 | } 9 | return Promise.resolve(null) 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # minimap-git-diff package 2 | 3 | A minimap binding for the Atom git-diff package. 4 | 5 | ![Minimap Git Diff Screenshot](https://github.com/atom-minimap/minimap-git-diff/blob/master/screenshot.png?raw=true) 6 | 7 | You will need the [Minimap package](https://github.com/fundon/atom-minimap) installed to use this package. 8 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /spec/minimap-git-diff-spec.js: -------------------------------------------------------------------------------- 1 | /** @babel */ 2 | 3 | const MinimapGitDiff = require('../lib/minimap-git-diff') 4 | 5 | describe('MinimapGitDiff', () => { 6 | let workspace 7 | 8 | beforeEach(async () => { 9 | workspace = atom.views.getView(atom.workspace) 10 | jasmine.attachToDOM(workspace) 11 | 12 | // Package activation will be deferred to the configured, activation hook, which is then triggered 13 | // Activate activation hook 14 | atom.packages.triggerDeferredActivationHooks() 15 | atom.packages.triggerActivationHook('core:loaded-shell-environment') 16 | await atom.packages.activatePackage('minimap') 17 | }) 18 | 19 | describe('when the package is activated', () => { 20 | beforeEach(async () => { 21 | await atom.packages.activatePackage('minimap-git-diff') 22 | }) 23 | 24 | it('should activate', () => { 25 | expect(MinimapGitDiff.isActive()).toBe(true) 26 | }) 27 | }) 28 | }) 29 | -------------------------------------------------------------------------------- /styles/minimap-git-diff.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/styles/ui-variables.less 4 | // for a full listing of what's available. 5 | @import "ui-variables"; 6 | @import "syntax-variables"; 7 | 8 | .minimap { 9 | .line { 10 | .git-line-modified { 11 | background: fadeOut(@syntax-color-modified, 50%); 12 | } 13 | 14 | .git-line-added { 15 | background: fadeOut(@syntax-color-added, 40%); 16 | } 17 | 18 | .git-line-removed { 19 | background: fadeOut(@syntax-color-removed, 30%); 20 | } 21 | } 22 | 23 | .gutter { 24 | .git-line-modified { 25 | background: @syntax-color-modified; 26 | } 27 | 28 | .git-line-added { 29 | background: @syntax-color-added; 30 | } 31 | 32 | .git-line-removed { 33 | background: @syntax-color-removed; 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "minimap-git-diff", 3 | "main": "./lib/minimap-git-diff", 4 | "version": "4.3.6", 5 | "description": "A minimap binding for the git diff package", 6 | "author": "Cédric Néhémie ", 7 | "repository": "https://github.com/atom-minimap/minimap-git-diff", 8 | "license": "MIT", 9 | "engines": { 10 | "atom": ">=1.20.0" 11 | }, 12 | "scripts": { 13 | "test": "atom --test spec", 14 | "lint": "eslint ." 15 | }, 16 | "atomTestRunner": "./spec/runner.js", 17 | "package-deps": [ 18 | { 19 | "name": "minimap" 20 | } 21 | ], 22 | "dependencies": { 23 | "atom-package-deps": "^8.0.0" 24 | }, 25 | "devDependencies": { 26 | "@semantic-release/apm-config": "^8.0.0", 27 | "atom-jasmine3-test-runner": "^5.2.13", 28 | "eslint": "^7.32.0", 29 | "eslint-config-standard": "^16.0.3", 30 | "eslint-plugin-import": "^2.26.0", 31 | "eslint-plugin-node": "^11.1.0", 32 | "eslint-plugin-promise": "^5.2.0", 33 | "eslint-plugin-react": "^7.30.1", 34 | "semantic-release": "^19.0.3" 35 | }, 36 | "consumedServices": { 37 | "minimap": { 38 | "versions": { 39 | "1.0.0": "consumeMinimapServiceV1" 40 | } 41 | } 42 | }, 43 | "activationHooks": [ 44 | "core:loaded-shell-environment" 45 | ] 46 | } 47 | -------------------------------------------------------------------------------- /.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 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 | -------------------------------------------------------------------------------- /lib/minimap-git-diff.js: -------------------------------------------------------------------------------- 1 | const { CompositeDisposable } = require('atom') 2 | 3 | let MinimapGitDiffBinding = null 4 | 5 | module.exports = { 6 | config: { 7 | useGutterDecoration: { 8 | type: 'boolean', 9 | default: false, 10 | description: 'When enabled the git diffs will be displayed as thin vertical lines on the left side of the minimap.', 11 | }, 12 | }, 13 | 14 | isActive () { 15 | return this.pluginActive 16 | }, 17 | 18 | activate () { 19 | this.pluginActive = false 20 | this.subscriptions = new CompositeDisposable() 21 | this.bindings = new WeakMap() 22 | require('atom-package-deps').install('minimap-git-diff') 23 | }, 24 | 25 | consumeMinimapServiceV1 (minimap) { 26 | this.minimap = minimap 27 | return this.minimap.registerPlugin('git-diff', this) 28 | }, 29 | 30 | deactivate () { 31 | this.destroyBindings() 32 | this.minimap = null 33 | }, 34 | 35 | activatePlugin () { 36 | if (this.pluginActive) { return } 37 | 38 | try { 39 | this.createBindings() 40 | this.pluginActive = true 41 | 42 | this.subscriptions.add(this.minimap.onDidActivate(this.createBindings.bind(this))) 43 | this.subscriptions.add(this.minimap.onDidDeactivate(this.destroyBindings.bind(this))) 44 | } catch (e) { 45 | console.log(e) 46 | } 47 | }, 48 | 49 | deactivatePlugin () { 50 | if (!this.pluginActive) { return } 51 | 52 | this.pluginActive = false 53 | this.subscriptions.dispose() 54 | this.destroyBindings() 55 | }, 56 | 57 | createBindings () { 58 | if (!MinimapGitDiffBinding) { MinimapGitDiffBinding = require('./minimap-git-diff-binding') } 59 | 60 | this.subscriptions.add(this.minimap.observeMinimaps(o => { 61 | const minimap = o.view ? o.view : o 62 | const editor = minimap.getTextEditor() 63 | 64 | if (!editor) { return } 65 | 66 | const binding = new MinimapGitDiffBinding(minimap) 67 | this.bindings.set(minimap, binding) 68 | }), 69 | ) 70 | }, 71 | 72 | destroyBindings () { 73 | if (!this.minimap || !this.minimap.editorsMinimaps) { return } 74 | this.minimap.editorsMinimaps.forEach(minimap => { 75 | const minimapBinding = this.bindings.get(minimap) 76 | if (minimapBinding) { 77 | minimapBinding.destroy() 78 | } 79 | this.bindings.delete(minimap) 80 | }) 81 | }, 82 | } 83 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | # 7 | # ******** NOTE ******** 8 | # We have attempted to detect the languages in your repository. Please check 9 | # the `language` matrix defined below to confirm you have the correct set of 10 | # supported CodeQL languages. 11 | # 12 | name: "CodeQL" 13 | 14 | on: 15 | push: 16 | branches: [ master ] 17 | pull_request: 18 | # The branches below must be a subset of the branches above 19 | branches: [ master ] 20 | schedule: 21 | - cron: '31 21 * * 3' 22 | 23 | jobs: 24 | analyze: 25 | name: Analyze 26 | runs-on: ubuntu-latest 27 | 28 | strategy: 29 | fail-fast: false 30 | matrix: 31 | language: [ 'javascript' ] 32 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] 33 | # Learn more: 34 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed 35 | 36 | steps: 37 | - name: Checkout repository 38 | uses: actions/checkout@v3 39 | 40 | # Initializes the CodeQL tools for scanning. 41 | - name: Initialize CodeQL 42 | uses: github/codeql-action/init@v2 43 | with: 44 | languages: ${{ matrix.language }} 45 | # If you wish to specify custom queries, you can do so here or in a config file. 46 | # By default, queries listed here will override any specified in a config file. 47 | # Prefix the list here with "+" to use these queries and those in the config file. 48 | # queries: ./path/to/local/query, your-org/your-repo/queries@main 49 | 50 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). 51 | # If this step fails, then you should remove it and run the build manually (see below) 52 | - name: Autobuild 53 | uses: github/codeql-action/autobuild@v2 54 | 55 | # ℹ️ Command-line programs to run using the OS shell. 56 | # 📚 https://git.io/JvXDl 57 | 58 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines 59 | # and modify them (or add more) to build your code if your project 60 | # uses a compiled language 61 | 62 | #- run: | 63 | # make bootstrap 64 | # make release 65 | 66 | - name: Perform CodeQL Analysis 67 | uses: github/codeql-action/analyze@v2 68 | -------------------------------------------------------------------------------- /lib/minimap-git-diff-binding.js: -------------------------------------------------------------------------------- 1 | const { CompositeDisposable } = require('atom') 2 | const { repositoryForPath } = require('./helpers') 3 | 4 | class MinimapGitDiffBinding { 5 | constructor (minimap) { 6 | this.active = false 7 | this.updateDiffs = this.updateDiffs.bind(this) 8 | this.destroy = this.destroy.bind(this) 9 | this.minimap = minimap 10 | this.decorations = {} 11 | this.markers = null 12 | this.subscriptions = new CompositeDisposable() 13 | 14 | if (!this.minimap) { 15 | console.warn('minimap-git-diff binding created without a minimap') 16 | return 17 | } 18 | 19 | this.editor = this.minimap.getTextEditor() 20 | 21 | this.subscriptions.add(this.minimap.onDidDestroy(this.destroy)) 22 | 23 | this.getRepo().then(repo => { 24 | this.repository = repo 25 | if (repo) { 26 | this.subscriptions.add(this.editor.getBuffer().onDidStopChanging(this.updateDiffs)) 27 | this.subscriptions.add(this.repository.onDidChangeStatuses(() => { 28 | this.scheduleUpdate() 29 | })) 30 | this.subscriptions.add(this.repository.onDidChangeStatus(changedPath => { 31 | if (changedPath === this.editor.getPath()) { this.scheduleUpdate() } 32 | })) 33 | this.subscriptions.add(this.repository.onDidDestroy(() => { 34 | this.destroy() 35 | })) 36 | this.subscriptions.add(atom.config.observe('minimap-git-diff.useGutterDecoration', useGutterDecoration => { 37 | this.useGutterDecoration = useGutterDecoration 38 | this.scheduleUpdate() 39 | })) 40 | } 41 | }) 42 | 43 | this.scheduleUpdate() 44 | } 45 | 46 | cancelUpdate () { 47 | clearImmediate(this.immediateId) 48 | } 49 | 50 | scheduleUpdate () { 51 | this.cancelUpdate() 52 | this.immediateId = setImmediate(this.updateDiffs) 53 | } 54 | 55 | updateDiffs () { 56 | this.removeDecorations() 57 | if (this.getPath() && (this.diffs = this.getDiffs())) { 58 | this.addDecorations(this.diffs) 59 | } 60 | } 61 | 62 | addDecorations (diffs) { 63 | for (const { newStart, oldLines, newLines } of Array.from(diffs)) { 64 | const startRow = newStart - 1 65 | const endRow = (newStart + newLines) - 2 66 | if ((oldLines === 0) && (newLines > 0)) { 67 | this.markRange(startRow, endRow, '.git-line-added') 68 | } else if ((newLines === 0) && (oldLines > 0)) { 69 | this.markRange(startRow, startRow, '.git-line-removed') 70 | } else { 71 | this.markRange(startRow, endRow, '.git-line-modified') 72 | } 73 | } 74 | } 75 | 76 | removeDecorations () { 77 | if (!this.markers) { return } 78 | for (const marker of Array.from(this.markers)) { marker.destroy() } 79 | this.markers = null 80 | } 81 | 82 | markRange (startRow, endRow, scope) { 83 | if (this.editor.isDestroyed()) { return } 84 | const marker = this.editor.markBufferRange([[startRow, 0], [endRow, Infinity]], { invalidate: 'never' }) 85 | const type = this.useGutterDecoration ? 'gutter' : 'line' 86 | this.minimap.decorateMarker(marker, { type, scope: `.minimap .${type} ${scope}`, plugin: 'git-diff' }) 87 | if (!this.markers) { this.markers = [] } 88 | this.markers.push(marker) 89 | } 90 | 91 | destroy () { 92 | this.removeDecorations() 93 | this.subscriptions.dispose() 94 | this.diffs = null 95 | this.minimap = null 96 | } 97 | 98 | getPath () { 99 | const buffer = this.editor.getBuffer() 100 | if (buffer) { 101 | return buffer.getPath() 102 | } 103 | } 104 | 105 | getRepo () { return repositoryForPath(this.editor.getPath()) } 106 | 107 | getDiffs () { 108 | try { 109 | const buffer = this.editor.getBuffer() 110 | if (this.repository && buffer) { 111 | return this.repository.getLineDiffs(this.getPath(), buffer.getText()) 112 | } 113 | } catch (e) {} 114 | 115 | return null 116 | } 117 | } 118 | 119 | module.exports = MinimapGitDiffBinding 120 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [4.3.6](https://github.com/atom-minimap/minimap-git-diff/compare/v4.3.5...v4.3.6) (2021-01-18) 2 | 3 | 4 | ### Bug Fixes 5 | 6 | * **deps:** bump atom-package-deps from 7.0.3 to 7.1.0 ([#50](https://github.com/atom-minimap/minimap-git-diff/issues/50)) ([6efebc2](https://github.com/atom-minimap/minimap-git-diff/commit/6efebc2d37a94e77d7f2e50df7edee33e9fb6e3e)) 7 | 8 | ## [4.3.5](https://github.com/atom-minimap/minimap-git-diff/compare/v4.3.4...v4.3.5) (2020-12-14) 9 | 10 | 11 | ### Bug Fixes 12 | 13 | * **deps:** bump atom-package-deps from 7.0.2 to 7.0.3 ([#42](https://github.com/atom-minimap/minimap-git-diff/issues/42)) ([11d7e66](https://github.com/atom-minimap/minimap-git-diff/commit/11d7e66234948ebd28bc3dcf3f2d8b6bc738f9d5)) 14 | 15 | ## [4.3.4](https://github.com/atom-minimap/minimap-git-diff/compare/v4.3.3...v4.3.4) (2020-11-28) 16 | 17 | 18 | ### Bug Fixes 19 | 20 | * add minimap as dependency ([dc98d64](https://github.com/atom-minimap/minimap-git-diff/commit/dc98d646615c01de2ca321603dff559e5dbb82f4)) 21 | 22 | ## [4.3.3](https://github.com/atom-minimap/minimap-git-diff/compare/v4.3.2...v4.3.3) (2020-11-27) 23 | 24 | 25 | ### Bug Fixes 26 | 27 | * add activation hook ([#36](https://github.com/atom-minimap/minimap-git-diff/issues/36)) ([4a46373](https://github.com/atom-minimap/minimap-git-diff/commit/4a46373de6fed95cc70b7356ed47430cb471e03d)) 28 | 29 | ## [4.3.2](https://github.com/atom-minimap/minimap-git-diff/compare/v4.3.1...v4.3.2) (2020-11-26) 30 | 31 | 32 | ### Bug Fixes 33 | 34 | * decaffeinate ([ada84e0](https://github.com/atom-minimap/minimap-git-diff/commit/ada84e07ba93350a6ad72eb639083245d92092d0)) 35 | * release with semantic release ([4feb3fb](https://github.com/atom-minimap/minimap-git-diff/commit/4feb3fbf51c9e8290de7d385ce3ee8bd303d0e1a)) 36 | 37 | 38 | # v4.3.1 (2016-05-07) 39 | 40 | ## :bug: Bug Fixes 41 | 42 | - Fix deprecation with display layer new API ([5a91d992](https://github.com/atom-minimap/minimap-git-diff/commit/5a91d992e156bdeade4125757113dfa8159cf270)) 43 | 44 | 45 | # v4.3.0 (2016-04-16) 46 | 47 | ## :sparkles: Features 48 | 49 | - Add support for gutter decorations ([2cc91b81](https://github.com/atom-minimap/minimap-git-diff/commit/2cc91b81daeee50d55828a22e44717f15fea3e73)) 50 |
As promised in #21 51 | 52 | 53 | # v4.2.0 (2016-03-07) 54 | 55 | ## :sparkles: Features 56 | 57 | - Add plugin origin on created decorations ([35e8641b](https://github.com/atom-minimap/minimap-git-diff/commit/35e8641b0ca68787a9d1c6ecb80478f4b4f90661)) 58 | 59 | 60 | # v4.1.8 (2015-08-17) 61 | 62 | ## :bug: Bug Fixes 63 | 64 | - Fix error still raised when reading the diffs from a destroyed repo ([68544885](https://github.com/atom-minimap/minimap-git-diff/commit/68544885bc51c841da0419465dd7dc260bf50ade), [#14](https://github.com/atom-minimap/minimap-git-diff/issues/14)) 65 | 66 | 67 | # v4.1.7 (2015-07-14) 68 | 69 | ## :bug: Bug Fixes 70 | 71 | - Fix error raised when opening a non existing file ([eb450b2c](https://github.com/atom-minimap/minimap-git-diff/commit/eb450b2ceec2f216ecc0b5600b100754880b3d6a), [#16](https://github.com/atom-minimap/minimap-git-diff/issues/16)) 72 | - Fix looping over array while it's actually a Map ([6e7265a5](https://github.com/atom 73 | 74 | 75 | # v4.1.6 (2015-07-10) 76 | 77 | ## :bug: Bug Fixes 78 | 79 | - Fix error raised if no editorsMinimap doesn't exist yet ([c8acb713](https://github.com/atom-minimap/minimap-git-diff/commit/c8acb713c5f9aeb0afc12980e4d7e1c88772197b), [#16](https://github.com/atom-minimap/minimap-git-diff/issues/16)) 80 | 81 | 82 | # v4.1.5 (2015-07-10) 83 | 84 | ## :bug: Bug Fixes 85 | 86 | - Fix leak bindings ([c1c836c8](https://github.com/atom-minimap/minimap-git-diff/commit/c1c836c8b0f5ce98a737889319c2943dcc3af6f8)) 87 | 88 | 89 | 90 | # v4.1.4 (2015-07-08) 91 | 92 | ## :bug: Bug Fixes 93 | 94 | - Destroy binding when the repository is destroyed ([4ba6e8d1](https://github.com/atom-minimap/minimap-git-diff/commit/4ba6e8d1b19fc286b6bebbd85e91ea79a315a677), [#12](https://github.com/atom-minimap/minimap-git-diff/issues/12)) 95 | 96 | 97 | 98 | # v4.1.3 (2015-05-18) 99 | 100 | ## :bug: Bug Fixes 101 | 102 | - Fix issues with project using more than one repo ([19d6fd28](https://github.com/atom-minimap/minimap-git-diff/commit/19d6fd28d81142b5ebe67d4df4e69ef014a3030d), [#12](https://github.com/atom-minimap/minimap-git-diff/issues/12)) 103 | 104 | ## :racehorse: Performances 105 | 106 | - Avoid updating on every change ([893ae34f](https://github.com/atom-minimap/minimap-git-diff/commit/893ae34fc6ac85e885a3e8b555485f9b8e1510eb)) 107 | 108 | 109 | # v4.1.2 (2015-03-01) 110 | 111 | ## :bug: Bug Fixes 112 | 113 | - Fix bad plugin name in registration ([8ab229a2](https://github.com/atom-minimap/minimap-git-diff/commit/8ab229a2e8a0930f682e6fb9c121c7d6bf7e5d29)) 114 | 115 | 116 | # v4.1.1 (2015-03-01) 117 | 118 | ## :sparkles: Features 119 | 120 | - Implement minimap service consumer ([cb81bb3a](https://github.com/atom-minimap/minimap-git-diff/commit/cb81bb3ae8b6d844eb2299c1f83b854a10f4b53f)) 121 | 122 | 123 | # v4.0.0 (2015-02-22) 124 | 125 | ## :truck: Migration 126 | 127 | - Migrate to atom-minimap organization ([838a7ad3](https://github.com/atom-minimap/minimap-git-diff/commit/838a7ad307d764d308f9bb948714713f8d60a593)) 128 | 129 | 130 | # v3.1.2 (2015-02-19) 131 | 132 | ## :bug: Bug Fixes 133 | 134 | - Fix broken binding when `getRepositories` returns `[null]` ([ad89d101](https://github.com/atom-minimap/minimap-git-diff/commit/ad89d101cbcc93ee3d2e084bfd03bc34b60f786a), [#5](https://github.com/atom-minimap/minimap-git-diff/issues/5)) 135 | 136 | 137 | # v3.1.1 (2015-01-26) 138 | 139 | ## :bug: Bug Fixes 140 | 141 | - Fix deprecations ([89e22169](https://github.com/atom-minimap/minimap-git-diff/commit/89e22169a1bdbb476771784c9474b21b5e40f561)) 142 | 143 | 144 | # v3.1.0 (2015-01-05) 145 | 146 | ## :sparkles: Features 147 | 148 | - Implement support for both v3 and v4 API ([84f2b31b](https://github.com/atom-minimap/minimap-git-diff/commit/84f2b31b95ddd7f556c31ac622970c928c500c0e)) 149 | 150 | 151 | # v3.0.11 (2014-12-05) 152 | 153 | ## :bug: Bug Fixes 154 | 155 | - Fix error still raised when adding marker to a destroyed buffer ([afc00dd7](https://github.com/atom-minimap/minimap-git-diff/commit/afc00dd79a7aff44fcbdc4840b0eee79376bfdb7)) 156 | 157 | 158 | # v3.0.10 (2014-12-05) 159 | 160 | - Remove warning and prevent marker creation if editor was destroyed 161 | 162 | 163 | # v3.0.9 (2014-12-05) 164 | 165 | ## :bug: Bug Fixes 166 | 167 | - Fix use of deprecated minimap API ([8770ea30](https://github.com/atom-minimap/minimap-git-diff/commit/8770ea3070532a00d3d82621961065e52f420118)) 168 | - Fix broken plugin with latest minimap changes ([b1a2e958](https://github.com/atom-minimap/minimap-git-diff/commit/b1a2e958d6d2731a51f0239ca12156521ebbd1d3)) 169 | 170 | 171 | # v3.0.8 (2014-10-29) 172 | 173 | - Use `atom-utils` for packages requires. 174 | - Add defensive code in `markRange` for the case the text editor is destroyed. 175 | 176 | ## :bug: Bug Fixes 177 | 178 | - Fix requiring packages by using a promise ([38096519](https://github.com/atom-minimap/minimap-git-diff/commit/3809651918431541db84a4dbc05502dbe5440f11)) 179 | 180 | 181 | # v3.0.6 (2014-10-23) 182 | 183 | ## :bug: Bug Fixes 184 | 185 | - Fix requiring packages by using a promise ([38096519](https://github.com/atom-minimap/minimap-git-diff/commit/3809651918431541db84a4dbc05502dbe5440f11)) 186 | 187 | 188 | # v3.0.5 (2014-10-22) 189 | 190 | ## :bug: Bug Fixes 191 | 192 | - Fix access to packages dependencies ([422ef35a](https://github.com/atom-minimap/minimap-git-diff/commit/422ef35ae21f1bb6d3eb8057757599af5e457292)) 193 | 194 | 195 | # v3.0.4 (2014-09-24) 196 | 197 | ## :bug: Bug Fixes 198 | 199 | - Fix missing hook on project events ([a600e632](https://github.com/atom-minimap/minimap-git-diff/commit/a600e63241c57a37d65bf38b703c69a8253f9324), [#1](https://github.com/atom-minimap/minimap-git-diff/issues/1)) 200 | 201 | 202 | # v3.0.3 (2014-09-20) 203 | 204 | ## :bug: Bug Fixes 205 | 206 | - Fix remaining call to unsubscribe in binding ([9f5a639f](https://github.com/atom-minimap/minimap-git-diff/commit/9f5a639f23aeb184a89769b1f788e51ea95ce739)) 207 | 208 | 209 | # v3.0.2 (2014-09-19) 210 | 211 | ## :bug: Bug Fixes 212 | 213 | - Fix broken activation due to renamed event in nightly ([15cafb4d](https://github.com/atom-minimap/minimap-git-diff/commit/15cafb4d6d13444944a2609ce6d22f0f55454c73)) 214 | 215 | 216 | # v3.0.1 (2014-09-19) 217 | 218 | ## :bug: Bug Fixes 219 | 220 | - Fix broken version test ([a6cca133](https://github.com/atom-minimap/minimap-git-diff/commit/a6cca133f70aef9e6ae9c1c81117145939443330)) 221 | 222 | 223 | # v3.0.0 (2014-09-19) 224 | 225 | ## :sparkles: Features 226 | 227 | - Add version test for upcoming version ([0f49e791](https://github.com/atom-minimap/minimap-git-diff/commit/0f49e7914e6e8d3c66df6f7e548c145d03199c1b)) 228 | - Implement support for the new minimap decoration API ([8a2835ee](https://github.com/atom-minimap/minimap-git-diff/commit/8a2835ee74a45e1fbc0b7966cd5cc5f9cc51d247)) 229 | 230 | ## :bug: Bug Fixes 231 | 232 | - Fix buffer subscription never disposed ([92a49acc](https://github.com/atom-minimap/minimap-git-diff/commit/92a49accd32e3b320a7ab03cd20e2682cfc4b84b)) 233 | - Fix deprecated minimap methods calls ([cbc02e7b](https://github.com/atom-minimap/minimap-git-diff/commit/cbc02e7b6a63995ac99ab1684819bedd339e68e4)) 234 | - Fix merge conflict ([03864b4c](https://github.com/atom-minimap/minimap-git-diff/commit/03864b4cee3f9454f9b4fd542cdf65732fcb645e)) 235 | - Fix typo in decorations scopes ([bf32873d](https://github.com/atom-minimap/minimap-git-diff/commit/bf32873d7497ead614a26b19e6b1d98e2a400187)) 236 | - Fix deprecation methods calls ([c16ba063](https://github.com/atom-minimap/minimap-git-diff/commit/c16ba0630f1aa60986b5546c9220ef7009068e32)) 237 | - Fix deprecated calls to event subscription ([68a1f5f3](https://github.com/atom-minimap/minimap-git-diff/commit/68a1f5f3d669483d1fa8004726a7de340b0c2db1)) 238 | - Fix legacy code remaining in deactivate ([a7e925ef](https://github.com/atom-minimap/minimap-git-diff/commit/a7e925ef73975aed65e715c30180812995ba2d30)) 239 | 240 | 241 | # v1.0.1 (2014-08-19) 242 | 243 | ## :bug: Bug Fixes 244 | 245 | - Fix CHANGELOG not being at the right place ([af3555fb](https://github.com/atom-minimap/minimap-git-diff/commit/af3555fb40d93607022c7177025f0d8de0a1d7b1)) 246 | 247 | 248 | # v1.0.0 (2014-08-16) 249 | 250 | ## :sparkles: Features 251 | 252 | - Add listener on screen-lines-changed instead of contents-modified ([f4dfa658](https://github.com/atom-minimap/minimap-git-diff/commit/f4dfa658fc6cc2317d7e50984b1df989d3f819b5)) 253 | 254 | 255 | 256 | # v0.6.0 (2014-05-11) 257 | 258 | ## :sparkles: Features 259 | 260 | - Adds minimap version test in activate method ([d1bf1bcb](https://github.com/atom-minimap/minimap-git-diff/commit/d1bf1bcbfda071e8618c98f0700e4901810bd0bc)) 261 | 262 | 263 | 264 | # v0.5.1 (2014-05-02) 265 | 266 | ## :bug: Bug Fixes 267 | 268 | - Fixes diffs disappearing on minimap toggle ([f497ce8f](https://github.com/atom-minimap/minimap-git-diff/commit/f497ce8f35f4255b25b69df272d5b1412fc505f2)) 269 | 270 | 271 | 272 | # v0.4.0 (2014-04-08) 273 | 274 | ## :sparkles: Features 275 | 276 | - Adds isActive plugin method ([0e89c371](https://github.com/atom-minimap/minimap-git-diff/commit/0e89c371e2c77547397f4574e71075a4cdfef4c0)) 277 | 278 | 279 | 280 | # v0.2.1 (2014-04-04) 281 | 282 | ## :sparkles: Features 283 | 284 | - Adds link to minimap in README ([c3fb883a](https://github.com/atom-minimap/minimap-git-diff/commit/c3fb883a0479ebb9df1818c0cb322883ae499e85)) 285 | 286 | 287 | 288 | # v0.2.0 (2014-04-04) 289 | 290 | ## :bug: Bug Fixes 291 | 292 | - Fix error raised on untracked files ([c7a8a0f6](https://github.com/atom-minimap/minimap-git-diff/commit/c7a8a0f6bc1d5c2b57b48d1dbb4db9f121177129), [#1](https://github.com/atom-minimap/minimap-git-diff/issues/1)) 293 | 294 | 295 | 296 | # v0.1.0 (2014-04-03) 297 | 298 | ## :sparkles: Features 299 | 300 | - Adds screenshot ion README ([b413fec7](https://github.com/atom-minimap/minimap-git-diff/commit/b413fec7200efd6fd5fda73eb3147c7dc3572fd8)) 301 | - Adds screenshot ([3b3bd8d9](https://github.com/atom-minimap/minimap-git-diff/commit/3b3bd8d9a2d8aa46ca033255eedb942f4a5d1445)) 302 | - Adds hooks on minimap updates ([7eeb6d1d](https://github.com/atom-minimap/minimap-git-diff/commit/7eeb6d1da2801112218ff304d7891b40494f770f)) 303 | - Implements the minimap diff display and update ([74b8b478](https://github.com/atom-minimap/minimap-git-diff/commit/74b8b478b165d0ef62a859a5593196ccb3e97e33)) 304 | --------------------------------------------------------------------------------