├── .editorconfig
├── .eslintrc.js
├── .gitattributes
├── .github
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── bug-report.yml
│ ├── feature-request.yml
│ ├── question.yml
│ └── requested-change.yml
├── PULL_REQUEST_TEMPLATE.md
└── workflows
│ ├── assign-to-project.yml
│ ├── build-test.yml
│ ├── create-release.yml
│ └── publish-vs-code-extension.yml
├── .gitignore
├── .nvmrc
├── .vscode
└── launch.json
├── .vscodeignore
├── CHANGELOG.md
├── DEVELOPERS.md
├── LICENSE
├── README.md
├── TROUBLESHOOTING.md
├── extension.code-workspace
├── extension
├── index.js
├── resources
│ ├── dark
│ │ ├── checked.svg
│ │ ├── reset.svg
│ │ ├── settings.svg
│ │ ├── toggle-off.svg
│ │ ├── toggle-on.svg
│ │ └── unchecked.svg
│ ├── icon.png
│ ├── light
│ │ ├── checked.svg
│ │ ├── reset.svg
│ │ ├── settings.svg
│ │ ├── toggle-off.svg
│ │ ├── toggle-on.svg
│ │ └── unchecked.svg
│ └── welcome.html
├── util.js
├── viewpane.js
└── welcome.js
├── package-lock.json
├── package.json
├── package.nls.bg.json
├── package.nls.de.json
├── package.nls.es.json
├── package.nls.fr.json
├── package.nls.hu.json
├── package.nls.it.json
├── package.nls.ja.json
├── package.nls.json
├── package.nls.ko.json
├── package.nls.pt-br.json
├── package.nls.ru.json
├── package.nls.tr.json
├── package.nls.zh-cn.json
└── package.nls.zh-tw.json
/.editorconfig:
--------------------------------------------------------------------------------
1 | # top-most EditorConfig file
2 | root = true
3 |
4 | # Unix-style newlines with a newline ending every file
5 | [*]
6 | end_of_line = lf
7 | insert_final_newline = true
8 | indent_style = space
9 | indent_size = 2
10 | trim_trailing_whitespace = true
11 |
12 | [package.json]
13 | indent_style = space
14 | indent_size = 2
15 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | parserOptions: {
4 | parser: 'babel-eslint',
5 | ecmaVersion: 8,
6 | },
7 | env: {
8 | es6: true,
9 | node: true,
10 | browser: true,
11 | jest: true,
12 | },
13 | plugins: ['prettier'],
14 | extends: ['eslint:recommended', 'prettier'],
15 | rules: {
16 | 'prettier/prettier': [
17 | 'error',
18 | {
19 | singleQuote: true,
20 | bracketSpacing: true,
21 | semi: false,
22 | printWidth: 500,
23 | },
24 | ],
25 | 'no-empty': [
26 | 'error',
27 | {
28 | allowEmptyCatch: true,
29 | },
30 | ],
31 | 'no-console': 0,
32 | 'no-control-regex': 0,
33 | 'no-useless-escape': 0,
34 | },
35 | globals: {},
36 | }
37 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto eol=lf
2 |
--------------------------------------------------------------------------------
/.github/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, sex characteristics, gender identity and expression,
9 | level of experience, education, socio-economic status, nationality, personal
10 | appearance, race, religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at me@peterschmalfeldt.com. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
75 | For answers to common questions about this code of conduct, see
76 | https://www.contributor-covenant.org/faq
77 |
--------------------------------------------------------------------------------
/.github/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | Contributing Guide
2 | ===
3 |
4 | Issues & Feature Requests
5 | ---
6 |
7 | [](https://github.com/sfccdevops/explorer-exclude-vscode-extension/issues/new/choose)
8 |
9 | ### Bug Fix
10 |
11 | > We're sorry things are not working as expected, and want to get things fixed ASAP. In order to help us do that, we need a few things from you.
12 |
13 | 1. Create a [New Issue](https://github.com/sfccdevops/explorer-exclude-vscode-extension/issues/new/choose)
14 | 2. Enter a Short but Descriptive Title for the Issue
15 | 3. Use the Template Provided and fill in as much as you can, if something does not apply, enter `N/A`
16 | 4. Look for the `Labels` section, and select `Bug Report` from the drop down menu
17 | 5. Click `Submit new issue` button
18 |
19 | ### Feature Request
20 |
21 | > Got an idea for a new feature? We'd love to hear it! In order to get this knocked out, we will need a few things from you.
22 |
23 | 1. Create a [New Issue](https://github.com/sfccdevops/explorer-exclude-vscode-extension/issues/new/choose)
24 | 2. Enter a Short but Descriptive Title for the Feature Request
25 | 3. Use the Template Provided and fill in as much as you can, if something does not apply, enter `N/A` ( you can delete the `Steps to Duplicate:` section as that does not apply )
26 | 4. Look for the `Labels` section, and select `Feature Request` from the drop down menu
27 | 5. Click `Submit new issue` button
28 |
29 | Pull Requests
30 | ---
31 |
32 | [](https://github.com/sfccdevops/explorer-exclude-vscode-extension/compare)
33 |
34 | ### Bug Fix
35 |
36 | > Each Bug Fix reported on GitHub should have its own `fix/*` branch. The branch name should be formatted `fix/###-issue-name` where `###` is the GitHub Issue Number, and `issue-name` is a 1-3 word summary of the issue.
37 |
38 | 1. Checkout latest `develop` branch
39 | 2. Pull down the latest changes via `git pull`
40 | 3. Create a new branch with the structure `fix/*`, e.g. `fix/123-broken-form`
41 | 4. When you are ready to submit your code, submit a new Pull Request that merges your code into `develop`
42 | 5. Tag your new Pull Request with `Ready for Code Review`
43 |
44 | ### Feature Request
45 |
46 | > Each New Feature should reside in its own `feature/` branch. The branch name should be formatted `feature/###-feature-name` where `###` is the GitHub Issue Number, and `feature-name` is a 1-3 word summary of the feature.
47 |
48 | 1. Checkout latest `develop` branch
49 | 2. Pull down the latest changes via `git pull`
50 | 3. Create a new branch with the structure `feature/*`, e.g. `feature/123-search-form`
51 | 4. When you are ready to submit your code, submit a new Pull Request that merges your code into `develop`
52 | 5. Tag your new Pull Request with `Ready for Code Review`
53 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: sfccdevops
2 | patreon: peter_schmalfeldt
3 | custom: https://www.paypal.me/manifestinteractive
4 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug-report.yml:
--------------------------------------------------------------------------------
1 | name: Bug Report
2 | description: I would like to Report a Bug
3 | labels: [Bug Report]
4 | assignees:
5 | - manifestinteractive
6 | body:
7 | - type: checkboxes
8 | attributes:
9 | label: Is there an existing issue for this?
10 | description: Please search to see if an issue already exists for the bug you encountered.
11 | options:
12 | - label: I have searched the existing issues
13 | required: true
14 | - type: textarea
15 | attributes:
16 | label: Describe the Bug
17 | description: A clear and concise description of what the bug is.
18 | validations:
19 | required: true
20 | - type: textarea
21 | attributes:
22 | label: Extension Output
23 | description: Paste the `Explorer Exclude` Output Log to your ticket.
24 | placeholder: |
25 | 1. Select `View` > `Output` from the Main Menu
26 | 2. Select `Explorer Exclude` from Output Select List
27 | 3. Copy all Output from log and paste in this text field
28 | validations:
29 | required: true
30 | - type: textarea
31 | attributes:
32 | label: Steps To Reproduce
33 | description: Steps to reproduce the behavior.
34 | placeholder: |
35 | 1. Go to ...
36 | 2. Click on ...
37 | 3. Scroll down to ...
38 | 4. See error ...
39 | validations:
40 | required: true
41 | - type: textarea
42 | attributes:
43 | label: Expected Behavior
44 | description: A concise description of what you expected to happen.
45 | validations:
46 | required: false
47 | - type: textarea
48 | attributes:
49 | label: Screenshots
50 | description: If applicable, add screenshots to help explain your problem.
51 | validations:
52 | required: false
53 | - type: textarea
54 | attributes:
55 | label: Environment
56 | description: |
57 | examples:
58 | - **OS**: Ubuntu 20.04
59 | - **Node**: 13.14.0
60 | - **npm**: 7.6.3
61 | value: |
62 | - OS:
63 | - Node:
64 | - npm:
65 | render: markdown
66 | validations:
67 | required: false
68 | - type: textarea
69 | attributes:
70 | label: Additional Context
71 | description: |
72 | Links? References? Anything that will give us more context about the issue you are encountering!
73 |
74 | Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
75 | validations:
76 | required: false
77 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature-request.yml:
--------------------------------------------------------------------------------
1 | name: Feature Request
2 | description: This is a new Feature Request for this project
3 | labels: [Feature Request]
4 | assignees:
5 | - manifestinteractive
6 | body:
7 | - type: textarea
8 | attributes:
9 | label: Describe the Problem
10 | description: Is your feature request related to a problem? Please describe.
11 | placeholder: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 | validations:
13 | required: true
14 | - type: textarea
15 | attributes:
16 | label: Describe the Solution
17 | description: Describe the solution you'd like
18 | placeholder: A clear and concise description of what you want to happen.
19 | validations:
20 | required: true
21 | - type: textarea
22 | attributes:
23 | label: Alternatives
24 | description: Describe alternatives you've considered
25 | placeholder: A clear and concise description of any alternative solutions or features you've considered.
26 | validations:
27 | required: false
28 | - type: textarea
29 | attributes:
30 | label: Additional Context
31 | description: |
32 | Add any other context or screenshots about the feature request here.
33 |
34 | Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
35 | validations:
36 | required: false
37 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/question.yml:
--------------------------------------------------------------------------------
1 | name: Question
2 | description: I have a Question about this project
3 | labels: [Question]
4 | assignees:
5 | - manifestinteractive
6 | body:
7 | - type: textarea
8 | attributes:
9 | label: Question
10 | description: Please Write your Question Below.
11 | validations:
12 | required: true
13 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/requested-change.yml:
--------------------------------------------------------------------------------
1 | name: Requested Change
2 | description: This is a Requested Change to the project
3 | labels: [Requested Change]
4 | assignees:
5 | - manifestinteractive
6 | body:
7 | - type: textarea
8 | attributes:
9 | label: Describe the Problem
10 | description: Is your requested change related to a problem? Please describe.
11 | placeholder: A clear and concise description of what the request is.
12 | validations:
13 | required: true
14 | - type: textarea
15 | attributes:
16 | label: Describe the Solution
17 | description: Describe the solution you'd like
18 | placeholder: A clear and concise description of what you want to happen.
19 | validations:
20 | required: true
21 | - type: textarea
22 | attributes:
23 | label: Alternatives
24 | description: Describe alternatives you've considered
25 | placeholder: A clear and concise description of any alternative solutions or features you've considered.
26 | validations:
27 | required: false
28 | - type: textarea
29 | attributes:
30 | label: Additional Context
31 | description: |
32 | Add any other context or screenshots about the feature request here.
33 |
34 | Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
35 | validations:
36 | required: false
37 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | Overview
2 | ---
3 |
4 | TEXT
5 |
6 | Reviewer
7 | ---
8 |
9 | > Where should the reviewer start? How to Test? Background Context? etc ( required )
10 |
11 | TEXT
12 |
13 | Checklist
14 | ---
15 |
16 | > I have tested each of the following, and they work as expected: ( required )
17 |
18 | - [ ] Meets [Contributing Guide](https://github.com/sfccdevops/explorer-exclude-vscode-extension/blob/develop/.github/CONTRIBUTING.md) Requirements
19 | - [ ] Pulled in the Latest Code from the `develop` branch
20 | - [ ] Works on a Desktop / Laptop Device
21 |
22 | Documentation
23 | ---
24 |
25 | > Screenshots, Attachments, Linked GitHub Issues, etc ( optional )
26 |
27 |
28 |
29 | #### What GIF best describes this PR or how it makes you feel?
30 |
31 | > Drag & Drop Something Fun Here ( optional )
32 |
--------------------------------------------------------------------------------
/.github/workflows/assign-to-project.yml:
--------------------------------------------------------------------------------
1 | name: Assign to Project
2 | on:
3 | issues:
4 | types:
5 | - opened
6 | pull_request:
7 | types:
8 | - opened
9 | env:
10 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
11 | jobs:
12 | assign_to_project:
13 | runs-on: ubuntu-latest
14 | name: Assign to Project
15 | steps:
16 | - name: Check GitHub Event Action
17 | uses: srggrs/assign-one-project-github-action@1.2.0
18 | if: github.event.action == 'opened'
19 | with:
20 | project: 'https://github.com/sfccdevops/explorer-exclude-vscode-extension/projects/1'
21 |
--------------------------------------------------------------------------------
/.github/workflows/build-test.yml:
--------------------------------------------------------------------------------
1 | name: Build & Test
2 | on:
3 | push:
4 | branches:
5 | - develop
6 | pull_request:
7 | branches:
8 | - develop
9 | jobs:
10 | build_and_test:
11 | name: Build Application and Run Tests
12 | runs-on: ubuntu-latest
13 | steps:
14 | - name: Check out Repository
15 | uses: actions/checkout@v2
16 | - name: Use Node.js
17 | uses: actions/setup-node@v1
18 | with:
19 | node-version: '14.x'
20 | - run: npm install
21 | - run: npm test
22 |
--------------------------------------------------------------------------------
/.github/workflows/create-release.yml:
--------------------------------------------------------------------------------
1 | name: Create Release
2 | on:
3 | push:
4 | tags:
5 | - 'v*'
6 | jobs:
7 | release:
8 | if: startsWith(github.ref, 'refs/tags/')
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Build Changelog
12 | id: github_release
13 | uses: mikepenz/release-changelog-builder-action@v1
14 | env:
15 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
16 | - name: Create Release
17 | uses: actions/create-release@v1
18 | with:
19 | tag_name: ${{ github.ref }}
20 | release_name: Release ${{ github.ref }}
21 | body: ${{steps.github_release.outputs.changelog}}
22 | draft: false
23 | prerelease: false
24 | env:
25 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26 |
--------------------------------------------------------------------------------
/.github/workflows/publish-vs-code-extension.yml:
--------------------------------------------------------------------------------
1 | name: Deploy Extension
2 | on:
3 | push:
4 | tags:
5 | - 'v*'
6 | jobs:
7 | deploy:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: actions/checkout@v2
11 | - uses: actions/setup-node@v1
12 | with:
13 | node-version: 16
14 | - run: npm ci
15 | # - name: Publish to Open VSX Registry
16 | # uses: HaaLeo/publish-vscode-extension@v1
17 | # id: publishToOpenVSX
18 | # with:
19 | # pat: ${{ secrets.OPEN_VSX_TOKEN }}
20 | - name: Publish to Visual Studio Marketplace
21 | uses: HaaLeo/publish-vscode-extension@v1
22 | id: publishToMarketplace
23 | with:
24 | pat: ${{ secrets.VS_MARKETPLACE_TOKEN }}
25 | registryUrl: https://marketplace.visualstudio.com
26 | extensionFile: ${{ steps.publishToOpenVSX.outputs.vsixPath }}
27 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | !.nvmrc
2 | .vscode/settings.json
3 | *.code-workspace
4 | *.vsix
5 | node_modules
6 | !extension.code-workspace
7 |
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | v14.19.0
2 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 | {
5 | "name": "Run Extension",
6 | "type": "extensionHost",
7 | "request": "launch",
8 | "runtimeExecutable": "${execPath}",
9 | "args": ["--extensionDevelopmentPath=${workspaceFolder}"]
10 | }
11 | ]
12 | }
--------------------------------------------------------------------------------
/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .gitignore
3 | .github
4 | .editorconfig
5 | .eslintrc.js
6 | .gitattributes
7 | .gitignore
8 | .nvmrc
9 | *.vsix
10 | *.code-workspace
11 | DEVELOPERS.md
12 | TROUBLESHOOTING.md
13 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | Change Log
2 | ===
3 |
4 | > Here's our record of all notable changes made to to this project
5 |
6 | v1.3.2
7 | ---
8 |
9 | * Add additional fallback for Workspace Detection ( Thanks @bjrmatos )
10 | * Move Missing Workspace Message to Panel rather than show alert ( Thanks @colas31 )
11 | * Revert Glob Pattern Change that used OS Path Separator
12 |
13 | v1.3.1
14 | ---
15 |
16 | * Fixed Naming Issue in PackageJSON
17 |
18 | v1.3.0
19 | ---
20 |
21 | * Added system indicator to VS Code File Excludes that cannot be removed
22 | * Add the ability to not show picker and directly exclude selected file ( Thanks @rw3iss )
23 | * Updated Workspace Detection to handle a few more unique use cases
24 | * Updated default null settings to {} vs null ( Thanks @Himadu2000 )
25 | * Added JSON Settings Linter Fix ( Thanks @MatthewTh0 )
26 |
27 | v1.2.0
28 | ---
29 |
30 | * Added new Hidden Items Pane Menu
31 |
32 | 
33 |
34 | v1.1.0
35 | ---
36 |
37 | * Add Language Translations for [VS Code Supported Locales](https://code.visualstudio.com/docs/getstarted/locales#_available-locales)
38 | * Fix bug with Command Pallet showing Explorer Exclude as available commands when it should not
39 |
40 | v1.0.1
41 | ---
42 |
43 | * Extensions like Prophet Debugger were creating virtual folders in / for accessing log files, and this created a weird bug in the logic that tried to detect project paths
44 | * Added .github folder to help automate issue reporting
45 | * Updated logo with dark background for search results Marketplace page
46 |
47 | v1.0.0
48 | ---
49 |
50 | * Initial Release
51 |
--------------------------------------------------------------------------------
/DEVELOPERS.md:
--------------------------------------------------------------------------------
1 | Developer Setup
2 | ===
3 |
4 | Extension Development
5 | ---
6 |
7 | ### Downloading Extension
8 |
9 | > To get started developing this extension, you will first need to download the source code:
10 |
11 | ```bash
12 | git clone git@github.com:sfccdevops/explorer-exclude-vscode-extension.git
13 | cd explorer-exclude-vscode-extension
14 | npm install
15 | ```
16 |
17 | ### Testing Extension
18 |
19 | > To develop this extension in VS Code:
20 |
21 | 1. Open File `extension.code-workspace` in VS Code
22 | 2. Run `npm install` in VS Code Terminal
23 | 3. Press `F5` to launch extension in a new VS Code window
24 |
25 | NOTE: The first time you press `F5` it may launch in an empty workspace. You will likely need to open an SFCC project into this new VS Code window in order to test the extension.
26 |
27 | Multilingual Support
28 | ---
29 |
30 | > Want this extension in another language? Translations for [VS Code Supported Locales](https://code.visualstudio.com/docs/getstarted/locales#_available-locales) can easily be added:
31 |
32 | **To make a Translation:**
33 |
34 | 1. Open `package.nls.json`
35 | 2. Save as a new file with language code, e.g. `Spanish` would be `package.nls.es.json`
36 | 3. Update JSON Values with your custom language
37 | 4. Double check everything works
38 | 5. Submit a Pull Request with a new translation file
39 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 SFCC DevOps
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Project Support
2 | ===
3 |
4 | If you or your company enjoy using this project, please consider supporting my work and joining my discord. 💖
5 |
6 | [](https://github.com/sponsors/sfccdevops)
7 | [](https://patreon.com/peter_schmalfeldt)
8 | [](https://www.paypal.me/manifestinteractive)
9 | [](https://discord.gg/StrwxWqh5Y)
10 |
11 | ------
12 |
13 | 
14 |
15 | Explorer Exclude - VS Code Extension
16 | ---
17 |
18 | > Context Menu and Explorer Panel to Manage Showing & Hiding Excluded Files & Folders ( for VS Code version 1.60 or newer )
19 |
20 | 
21 |
22 | - [X] Easily Hide Files & Folders from Explorer, Search Results & Quick Open
23 | - [X] New Hidden Items Explorer Pane to Manage Hidden Items
24 | - [X] Works with Multiple Workspaces
25 | - [X] Quickly Toggle Visibility of Hidden Items
26 | - [X] Translations for [VS Code Supported Locales](https://code.visualstudio.com/docs/getstarted/locales#_available-locales): _( English, Simplified Chinese, Traditional Chinese, French, German, Italian, Spanish, Japanese, Korean, Russian, Bulgarian, Hungarian, Portuguese & Turkish )_
27 |
28 | Usage
29 | ---
30 |
31 | #### Hiding Files & Folders
32 |
33 | Right-click on any File or Folder in Explorer List to Hide Items
34 |
35 | 
36 |
37 | Select Filter Options you wish to Hide Files & Folders
38 |
39 | 
40 |
41 | You can disable the filter option popup, and by default only allow the selected item to be hidden, by adding this setting in VSCode:
42 |
43 | `"explorerExclude.showPicker": false`
44 |
45 | #### Managing Hidden Files & Folders
46 |
47 | New `HIDDEN ITEMS` Explorer Pane to Manage Hidden Files:
48 |
49 | * Click an item in the Hidden Items pane to quickly toggle its visibility
50 | * Right-click an item to view Context Menu where you can Permanently Remove item
51 | * Use Hidden Items Menu to manage multiple items at once
52 |
53 | 
54 | 
55 |
56 | Need Help?
57 | ---
58 |
59 | > Check out or Troubleshooting Page for help with any known issues or report new ones.
60 |
61 | [](https://github.com/sfccdevops/explorer-exclude-vscode-extension/blob/develop/TROUBLESHOOTING.md)
62 |
63 | About the Author
64 | ---
65 |
66 | > [Peter Schmalfeldt](https://peterschmalfeldt.com/) is a Certified Senior Salesforce Commerce Cloud Developer with over 20 years of experience building eCommerce websites, providing everything you need to design, develop & deploy eCommerce applications for Web, Mobile & Desktop platforms.
67 |
68 | Disclaimer
69 | ---
70 |
71 | > The trademarks and product names of Salesforce®, including the mark Salesforce®, are the property of Salesforce.com. SFCC DevOps is not affiliated with Salesforce.com, nor does Salesforce.com sponsor or endorse the SFCC DevOps products or website. The use of the Salesforce® trademark on this project does not indicate an endorsement, recommendation, or business relationship between Salesforce.com and SFCC DevOps.
72 |
--------------------------------------------------------------------------------
/TROUBLESHOOTING.md:
--------------------------------------------------------------------------------
1 | Troubleshooting
2 | ===
3 |
4 | > This document contains a list of known issues, and how to solve them.
5 |
6 | `Nothing Shows Up After Update`
7 | ---
8 |
9 | This can happen if you had the extension installed before. To fix this:
10 |
11 | 1. Switch to `Extensions` in Left Column
12 | 2. Look for `Explorer Exclude`
13 | 3. Check to see if it has a `Reload Required` button, it if does, click it ( extension will not work until you do )
14 |
15 | If that was not the case, you may need:
16 |
17 | 1. Uninstall `Explorer Exclude` Extension
18 | 2. Restart VS Code
19 | 3. Reinstall `Explorer Exclude` Extension
20 |
21 | `Unable to install Extension`
22 | ---
23 |
24 | If you are getting an error like this one:
25 |
26 | ```
27 | Unable to install Extension 'sfccdevops.explorer-exclude-vscode-extension-1.3.0' as it is not compatible with Code '1.26.0'.
28 | ```
29 |
30 | It is because you downloaded the Extension from the VS Code Marketplace Website manually ( and not through VS Code's internal extension listing ) and tried to install it into an older, unsupported version of VS Code.
31 |
32 | This extension requires VS Code v1.60 or newer. If you would like to install this extension, you will need to [update VS Code](https://code.visualstudio.com/download) to version v1.60 or newer.
33 |
34 | Need Help?
35 | ===
36 |
37 | > Did not find what you are looking for? Check out our current reported issues to see if someone else is having the same problem.
38 |
39 | [](https://github.com/sfccdevops/explorer-exclude-vscode-extension/issues)
40 |
41 | > Still did not find what you were looking for?
42 |
43 | [](https://github.com/sfccdevops/explorer-exclude-vscode-extension/issues/new/choose)
44 |
45 | **NOTE**: If you're reporting a new bug, add our `Explorer Exclude` Output Log to your ticket. You can access this log at anytime to see output generated by our extension:
46 |
47 | 1. Select `View` > `Output` from the Main Menu
48 | 2. Select `Explorer Exclude` from Output Select List
49 | 3. Copy all Output from log and paste it in the `Extension Output` section of the ticket
50 |
--------------------------------------------------------------------------------
/extension.code-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "folders": [
3 | {
4 | "path": "."
5 | }
6 | ],
7 | "settings": {
8 | "cSpell.words": [
9 | "mikepenz",
10 | "sfccdevops",
11 | "srggrs",
12 | "viewpane",
13 | "vsix"
14 | ]
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/extension/index.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | const vscode = require('vscode')
4 | const { init, localize } = require('vscode-nls-i18n')
5 |
6 | const util = require('./util')
7 | const ViewPane = require('./viewpane')
8 | const WelcomePane = require('./welcome')
9 |
10 | /**
11 | * Handle Activating Extension
12 | * @param {*} context
13 | */
14 | function activate(context) {
15 | // Initialize Localization
16 | init(context.extensionPath)
17 |
18 | const timeout = 25
19 | const pane = new ViewPane('explorerExclude.pane.items')
20 |
21 | // Get Extension Version Info
22 | const currentVersion = context.globalState.get('explorer-exclude.version')
23 | const packageVersion = vscode.extensions.getExtension('PeterSchmalfeldt.explorer-exclude').packageJSON.version
24 |
25 | // Check if there was a recent change to installed version
26 | if (currentVersion !== packageVersion) {
27 | // Update version number so we don't show this again until next update
28 | context.globalState.update('explorer-exclude.version', packageVersion)
29 |
30 | // Show Welcome Modal since this is a new version or install
31 | const welcome = new WelcomePane()
32 | welcome.show()
33 | }
34 |
35 | const disableAll = vscode.commands.registerCommand('explorer-exclude.disableAll', () => {
36 | util.logger('Disable All Excludes', 'debug')
37 | util.disableAll(function () {
38 | setTimeout(function () {
39 | pane.update(util.getExcludes())
40 | }, timeout)
41 | })
42 | })
43 |
44 | const enableAll = vscode.commands.registerCommand('explorer-exclude.enableAll', () => {
45 | util.logger('Enable All Excludes', 'debug')
46 | util.enableAll(function () {
47 | setTimeout(function () {
48 | pane.update(util.getExcludes())
49 | }, timeout)
50 | })
51 | })
52 |
53 | const exclude = vscode.commands.registerCommand('explorer-exclude.exclude', (uri) => {
54 | util.exclude(uri, function () {
55 | setTimeout(function () {
56 | pane.update(util.getExcludes())
57 | }, timeout)
58 | })
59 | })
60 |
61 | const openSettings = vscode.commands.registerCommand('explorer-exclude.openSettings', () => {
62 | util.logger('Opening Explorer Exclude Settings', 'debug')
63 | vscode.commands.executeCommand('workbench.action.openSettings', 'explorerExclude.')
64 | setTimeout(function () {
65 | vscode.commands.executeCommand('workbench.action.openWorkspaceSettings')
66 | }, 1000)
67 | })
68 |
69 | const remove = vscode.commands.registerCommand('explorer-exclude.remove', (uri) => {
70 | if (uri && uri.value) {
71 | const value = uri.value
72 | const key = value.substring(0, value.length - 2)
73 |
74 | util.logger(`Remove: ${key}`, 'debug')
75 |
76 | util.deleteExclude(key, function () {
77 | setTimeout(function () {
78 | pane.update(util.getExcludes())
79 | }, timeout)
80 | })
81 | }
82 | })
83 |
84 | const reset = vscode.commands.registerCommand('explorer-exclude.reset', async () => {
85 | const value = await vscode.window.showInputBox({
86 | prompt: localize('reset.prompt'),
87 | })
88 |
89 | if (typeof value !== 'undefined') {
90 | util.logger('Reset Explorer Exclude', 'debug')
91 |
92 | util.reset(function () {
93 | setTimeout(function () {
94 | pane.update(util.getExcludes())
95 | }, timeout)
96 | })
97 | }
98 | })
99 |
100 | const toggle = vscode.commands.registerCommand('explorer-exclude.toggle', (uri) => {
101 | util.toggleExclude(uri, function () {
102 | setTimeout(function () {
103 | pane.update(util.getExcludes())
104 | }, timeout)
105 | })
106 | })
107 |
108 | const toggleAllOff = vscode.commands.registerCommand('explorer-exclude.toggleAllOff', () => {
109 | util.logger('Toggle All Excludes: OFF', 'debug')
110 | util.toggleAll(function () {
111 | setTimeout(function () {
112 | pane.update(util.getExcludes())
113 | }, timeout)
114 | })
115 | })
116 |
117 | const toggleAllOn = vscode.commands.registerCommand('explorer-exclude.toggleAllOn', () => {
118 | util.logger('Toggle All Excludes: ON', 'debug')
119 | util.toggleAll(function () {
120 | setTimeout(function () {
121 | pane.update(util.getExcludes())
122 | }, timeout)
123 | })
124 | })
125 |
126 | // Set Initial State of Extension
127 | vscode.commands.executeCommand('setContext', 'explorer-exclude.enabled', true)
128 | vscode.commands.executeCommand('setContext', 'explorer-exclude.hasLoaded', true)
129 |
130 | // Save Extension Context for later use
131 | util.saveContext(context)
132 |
133 | // Initialize Hidden Items Pane
134 | pane.update(util.getExcludes())
135 |
136 | // Update VS Code Extension Subscriptions
137 | context.subscriptions.push(disableAll)
138 | context.subscriptions.push(enableAll)
139 | context.subscriptions.push(exclude)
140 | context.subscriptions.push(openSettings)
141 | context.subscriptions.push(remove)
142 | context.subscriptions.push(reset)
143 | context.subscriptions.push(toggle)
144 | context.subscriptions.push(toggleAllOff)
145 | context.subscriptions.push(toggleAllOn)
146 | }
147 |
148 | /**
149 | * Handle Deactivating Extension
150 | */
151 | function deactivate() {
152 | vscode.commands.executeCommand('setContext', 'explorer-exclude.enabled', false)
153 | }
154 |
155 | module.exports = {
156 | activate,
157 | deactivate,
158 | }
159 |
--------------------------------------------------------------------------------
/extension/resources/dark/checked.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/extension/resources/dark/reset.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
--------------------------------------------------------------------------------
/extension/resources/dark/settings.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/extension/resources/dark/toggle-off.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/extension/resources/dark/toggle-on.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/extension/resources/dark/unchecked.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/extension/resources/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sfccdevops/explorer-exclude-vscode-extension/c8324ca8a97da4f28e535b23b3876868d38c5266/extension/resources/icon.png
--------------------------------------------------------------------------------
/extension/resources/light/checked.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/extension/resources/light/reset.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
--------------------------------------------------------------------------------
/extension/resources/light/settings.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/extension/resources/light/toggle-off.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/extension/resources/light/toggle-on.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/extension/resources/light/unchecked.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/extension/resources/welcome.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |