Repository files navigation

Psalm Docker VS Code

This plugin is a fork made from the psalm-docker-vscode extension by Ignas2526 (here https://github.com/Ignas2526/psalm-docker-vscode). It solves some problems with that extension to make it useable:

  • Allows multiple docker-compose.yml files (i.e., allow for override file + default file together)
  • Updates the xdebug command line disabling feature to use xdebug v3 rather than xdebug v2
  • Adds some examples to the readme so there's less guess work :)

Visual Studio Code plugin for Psalm. This extension allows for the Psalm server to run inside the docker container. It works by having a docker-compose run the psalm server. Next, it translates the file paths between the host OS and the docker container. This extension is based on the official Psalm VS Code Extension extension.

Features

  • Runs Psalm's analysis when opening and saving files using the Language Server Protocol for communication.

Installation & Configuration

  1. Have a working docker container with docker-compose. It is important for the project code which the Psalm will analyze to be accessible inside the docker.
  2. Inside the docker container with the code install psalm: composer require --dev vimeo/psalm and generate the psalm.xml file ./vendor/bin/psalm --init
  3. Configure this extension accordingly (example below)
// The name of your PHP service in your docker compose configuration (i.e., the
// first YAML label/indentation beneath outer 'services:' indentation level)
"psalm_docker.dockerServiceName": "php",
// Array of either 1 or 2 absolute paths to the docker compose Yaml files on your
// host filesystem. Always put your override path first (if applicable)
"psalm_docker.localDockerComposePaths": [
"/your/host/path/docker-compose.override.yml",
"/your/host/path/docker-compose.yml"
],
// Absolute path to the psalm-language-server binary (path inside the container!)
"psalm_docker.remotePsalmServerPath": "/app/vendor/bin/psalm-language-server",
// Absolute path of your project/repo for your host filesystem
"psalm_docker.localPath": "/your/host/path",
// Absolute path of your project/repo inside your docker filesystem
"psalm_docker.remotePath": "/app",
// Absolute path to your psalm XML config file inside your docker filesystem
"psalm_docker.remotePsalmXmlPath": "/app/psalm.xml",
// Domain or IP address where the container can reach back to your host. // See https://stackoverflow.com/a/62431165 on how you can configure 'host.docker.internal'
// or alternatively, if you are using default networking, you should be able to
// simply use the IP address '172.17.0.1'
// (Note: this is ignored if psalm_docker.ngrok is set to true. See below)
"psalm_docker.dockerHostDomainOrIp": "host.docker.internal",
// An alternative to the 'dockerHostDomainOrIp' setting. Set this to true to make
// the extension use ngrok to bypass the need for the docker image to reach the
// host via a local network port. Instead, it will use an ngrok dynamic domain
// to go via an internet tunnel
"psalm_docker.ngrok": false,
// Signup for free at https://dashboard.ngrok.com/login for token to allow TCP tunnels
// @see https://dashboard.ngrok.com/get-started/your-authtoken
"psalm_docker.ngrokAuthToken": "ABC123"

See https://dev.to/natterstefan/docker-tip-how-to-get-host-s-ip-address-inside-a-docker-container-5anh#:~:text=On%20Docker%20for%20Linux,%20the,you%20are%20using%20default%20networking. for more info on how to access the host from inside the docker container

Troubleshooting

Debug Output

Set debug mode to true to get debug output to diagnose problems. The output will appear in your 'Output' tool window under an output channel named 'Psalm Docker Debug'

"psalm_docker.debug": true

Using ngrok Tunnel

If you have a non-standard docker configuration or are having issues with the docker container communicating back to the vscode host, you can set the config option psalm_docker.ngrok to true as well as adding your ngrok auth token to psalm_docker.ngrokAuthToken. This will mean ngrok is utilised to go via an internet tunnel rather than directly through the local network

See https://dashboard.ngrok.com/get-started/your-authtoken

Contributing

You can build and test locally in Visual Studio this locally using npm:

npm install
npm run build

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Psalm Docker VS Code

This plugin is a fork made from the psalm-docker-vscode extension by Ignas2526 (here https://github.com/Ignas2526/psalm-docker-vscode). It solves some problems with that extension to make it useable:

  • Allows multiple docker-compose.yml files (i.e., allow for override file + default file together)
  • Updates the xdebug command line disabling feature to use xdebug v3 rather than xdebug v2
  • Adds some examples to the readme so there's less guess work :)

Visual Studio Code plugin for Psalm. This extension allows for the Psalm server to run inside the docker container. It works by having a docker-compose run the psalm server. Next, it translates the file paths between the host OS and the docker container. This extension is based on the official Psalm VS Code Extension extension.

Features

  • Runs Psalm's analysis when opening and saving files using the Language Server Protocol for communication.

Installation & Configuration

  1. Have a working docker container with docker-compose. It is important for the project code which the Psalm will analyze to be accessible inside the docker.
  2. Inside the docker container with the code install psalm: composer require --dev vimeo/psalm and generate the psalm.xml file ./vendor/bin/psalm --init
  3. Configure this extension accordingly (example below)
// The name of your PHP service in your docker compose configuration (i.e., the
// first YAML label/indentation beneath outer 'services:' indentation level)
"psalm_docker.dockerServiceName": "php",
// Array of either 1 or 2 absolute paths to the docker compose Yaml files on your
// host filesystem. Always put your override path first (if applicable)
"psalm_docker.localDockerComposePaths": [
"/your/host/path/docker-compose.override.yml",
"/your/host/path/docker-compose.yml"
],
// Absolute path to the psalm-language-server binary (path inside the container!)
"psalm_docker.remotePsalmServerPath": "/app/vendor/bin/psalm-language-server",
// Absolute path of your project/repo for your host filesystem
"psalm_docker.localPath": "/your/host/path",
// Absolute path of your project/repo inside your docker filesystem
"psalm_docker.remotePath": "/app",
// Absolute path to your psalm XML config file inside your docker filesystem
"psalm_docker.remotePsalmXmlPath": "/app/psalm.xml",
// Domain or IP address where the container can reach back to your host. // See https://stackoverflow.com/a/62431165 on how you can configure 'host.docker.internal'
// or alternatively, if you are using default networking, you should be able to
// simply use the IP address '172.17.0.1'
// (Note: this is ignored if psalm_docker.ngrok is set to true. See below)
"psalm_docker.dockerHostDomainOrIp": "host.docker.internal",
// An alternative to the 'dockerHostDomainOrIp' setting. Set this to true to make
// the extension use ngrok to bypass the need for the docker image to reach the
// host via a local network port. Instead, it will use an ngrok dynamic domain
// to go via an internet tunnel
"psalm_docker.ngrok": false,
// Signup for free at https://dashboard.ngrok.com/login for token to allow TCP tunnels
// @see https://dashboard.ngrok.com/get-started/your-authtoken
"psalm_docker.ngrokAuthToken": "ABC123"

See https://dev.to/natterstefan/docker-tip-how-to-get-host-s-ip-address-inside-a-docker-container-5anh#:~:text=On%20Docker%20for%20Linux,%20the,you%20are%20using%20default%20networking. for more info on how to access the host from inside the docker container

Troubleshooting

Debug Output

Set debug mode to true to get debug output to diagnose problems. The output will appear in your 'Output' tool window under an output channel named 'Psalm Docker Debug'

"psalm_docker.debug": true

Using ngrok Tunnel

If you have a non-standard docker configuration or are having issues with the docker container communicating back to the vscode host, you can set the config option psalm_docker.ngrok to true as well as adding your ngrok auth token to psalm_docker.ngrokAuthToken. This will mean ngrok is utilised to go via an internet tunnel rather than directly through the local network

See https://dashboard.ngrok.com/get-started/your-authtoken

Contributing

You can build and test locally in Visual Studio this locally using npm:

npm install
npm run build

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Psalm Docker VS Code

This plugin is a fork made from the psalm-docker-vscode extension by Ignas2526 (here https://github.com/Ignas2526/psalm-docker-vscode). It solves some problems with that extension to make it useable:

  • Allows multiple docker-compose.yml files (i.e., allow for override file + default file together)
  • Updates the xdebug command line disabling feature to use xdebug v3 rather than xdebug v2
  • Adds some examples to the readme so there's less guess work :)

Visual Studio Code plugin for Psalm. This extension allows for the Psalm server to run inside the docker container. It works by having a docker-compose run the psalm server. Next, it translates the file paths between the host OS and the docker container. This extension is based on the official Psalm VS Code Extension extension.

Features

  • Runs Psalm's analysis when opening and saving files using the Language Server Protocol for communication.

Installation & Configuration

  1. Have a working docker container with docker-compose. It is important for the project code which the Psalm will analyze to be accessible inside the docker.
  2. Inside the docker container with the code install psalm: composer require --dev vimeo/psalm and generate the psalm.xml file ./vendor/bin/psalm --init
  3. Configure this extension accordingly (example below)
// The name of your PHP service in your docker compose configuration (i.e., the
// first YAML label/indentation beneath outer 'services:' indentation level)
"psalm_docker.dockerServiceName": "php",
// Array of either 1 or 2 absolute paths to the docker compose Yaml files on your
// host filesystem. Always put your override path first (if applicable)
"psalm_docker.localDockerComposePaths": [
"/your/host/path/docker-compose.override.yml",
"/your/host/path/docker-compose.yml"
],
// Absolute path to the psalm-language-server binary (path inside the container!)
"psalm_docker.remotePsalmServerPath": "/app/vendor/bin/psalm-language-server",
// Absolute path of your project/repo for your host filesystem
"psalm_docker.localPath": "/your/host/path",
// Absolute path of your project/repo inside your docker filesystem
"psalm_docker.remotePath": "/app",
// Absolute path to your psalm XML config file inside your docker filesystem
"psalm_docker.remotePsalmXmlPath": "/app/psalm.xml",
// Domain or IP address where the container can reach back to your host. // See https://stackoverflow.com/a/62431165 on how you can configure 'host.docker.internal'
// or alternatively, if you are using default networking, you should be able to
// simply use the IP address '172.17.0.1'
// (Note: this is ignored if psalm_docker.ngrok is set to true. See below)
"psalm_docker.dockerHostDomainOrIp": "host.docker.internal",
// An alternative to the 'dockerHostDomainOrIp' setting. Set this to true to make
// the extension use ngrok to bypass the need for the docker image to reach the
// host via a local network port. Instead, it will use an ngrok dynamic domain
// to go via an internet tunnel
"psalm_docker.ngrok": false,
// Signup for free at https://dashboard.ngrok.com/login for token to allow TCP tunnels
// @see https://dashboard.ngrok.com/get-started/your-authtoken
"psalm_docker.ngrokAuthToken": "ABC123"

See https://dev.to/natterstefan/docker-tip-how-to-get-host-s-ip-address-inside-a-docker-container-5anh#:~:text=On%20Docker%20for%20Linux,%20the,you%20are%20using%20default%20networking. for more info on how to access the host from inside the docker container

Troubleshooting

Debug Output

Set debug mode to true to get debug output to diagnose problems. The output will appear in your 'Output' tool window under an output channel named 'Psalm Docker Debug'

"psalm_docker.debug": true

Using ngrok Tunnel

If you have a non-standard docker configuration or are having issues with the docker container communicating back to the vscode host, you can set the config option psalm_docker.ngrok to true as well as adding your ngrok auth token to psalm_docker.ngrokAuthToken. This will mean ngrok is utilised to go via an internet tunnel rather than directly through the local network

See https://dashboard.ngrok.com/get-started/your-authtoken

Contributing

You can build and test locally in Visual Studio this locally using npm:

npm install
npm run build

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Psalm Docker VS Code

This plugin is a fork made from the psalm-docker-vscode extension by Ignas2526 (here https://github.com/Ignas2526/psalm-docker-vscode). It solves some problems with that extension to make it useable:

  • Allows multiple docker-compose.yml files (i.e., allow for override file + default file together)
  • Updates the xdebug command line disabling feature to use xdebug v3 rather than xdebug v2
  • Adds some examples to the readme so there's less guess work :)

Visual Studio Code plugin for Psalm. This extension allows for the Psalm server to run inside the docker container. It works by having a docker-compose run the psalm server. Next, it translates the file paths between the host OS and the docker container. This extension is based on the official Psalm VS Code Extension extension.

Features

  • Runs Psalm's analysis when opening and saving files using the Language Server Protocol for communication.

Installation & Configuration

  1. Have a working docker container with docker-compose. It is important for the project code which the Psalm will analyze to be accessible inside the docker.
  2. Inside the docker container with the code install psalm: composer require --dev vimeo/psalm and generate the psalm.xml file ./vendor/bin/psalm --init
  3. Configure this extension accordingly (example below)
// The name of your PHP service in your docker compose configuration (i.e., the
// first YAML label/indentation beneath outer 'services:' indentation level)
"psalm_docker.dockerServiceName": "php",
// Array of either 1 or 2 absolute paths to the docker compose Yaml files on your
// host filesystem. Always put your override path first (if applicable)
"psalm_docker.localDockerComposePaths": [
"/your/host/path/docker-compose.override.yml",
"/your/host/path/docker-compose.yml"
],
// Absolute path to the psalm-language-server binary (path inside the container!)
"psalm_docker.remotePsalmServerPath": "/app/vendor/bin/psalm-language-server",
// Absolute path of your project/repo for your host filesystem
"psalm_docker.localPath": "/your/host/path",
// Absolute path of your project/repo inside your docker filesystem
"psalm_docker.remotePath": "/app",
// Absolute path to your psalm XML config file inside your docker filesystem
"psalm_docker.remotePsalmXmlPath": "/app/psalm.xml",
// Domain or IP address where the container can reach back to your host. // See https://stackoverflow.com/a/62431165 on how you can configure 'host.docker.internal'
// or alternatively, if you are using default networking, you should be able to
// simply use the IP address '172.17.0.1'
// (Note: this is ignored if psalm_docker.ngrok is set to true. See below)
"psalm_docker.dockerHostDomainOrIp": "host.docker.internal",
// An alternative to the 'dockerHostDomainOrIp' setting. Set this to true to make
// the extension use ngrok to bypass the need for the docker image to reach the
// host via a local network port. Instead, it will use an ngrok dynamic domain
// to go via an internet tunnel
"psalm_docker.ngrok": false,
// Signup for free at https://dashboard.ngrok.com/login for token to allow TCP tunnels
// @see https://dashboard.ngrok.com/get-started/your-authtoken
"psalm_docker.ngrokAuthToken": "ABC123"

See https://dev.to/natterstefan/docker-tip-how-to-get-host-s-ip-address-inside-a-docker-container-5anh#:~:text=On%20Docker%20for%20Linux,%20the,you%20are%20using%20default%20networking. for more info on how to access the host from inside the docker container

Troubleshooting

Debug Output

Set debug mode to true to get debug output to diagnose problems. The output will appear in your 'Output' tool window under an output channel named 'Psalm Docker Debug'

"psalm_docker.debug": true

Using ngrok Tunnel

If you have a non-standard docker configuration or are having issues with the docker container communicating back to the vscode host, you can set the config option psalm_docker.ngrok to true as well as adding your ngrok auth token to psalm_docker.ngrokAuthToken. This will mean ngrok is utilised to go via an internet tunnel rather than directly through the local network

See https://dashboard.ngrok.com/get-started/your-authtoken

Contributing

You can build and test locally in Visual Studio this locally using npm:

npm install
npm run build

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Psalm Docker VS Code

This plugin is a fork made from the psalm-docker-vscode extension by Ignas2526 (here https://github.com/Ignas2526/psalm-docker-vscode). It solves some problems with that extension to make it useable:

  • Allows multiple docker-compose.yml files (i.e., allow for override file + default file together)
  • Updates the xdebug command line disabling feature to use xdebug v3 rather than xdebug v2
  • Adds some examples to the readme so there's less guess work :)

Visual Studio Code plugin for Psalm. This extension allows for the Psalm server to run inside the docker container. It works by having a docker-compose run the psalm server. Next, it translates the file paths between the host OS and the docker container. This extension is based on the official Psalm VS Code Extension extension.

Features

  • Runs Psalm's analysis when opening and saving files using the Language Server Protocol for communication.

Installation & Configuration

  1. Have a working docker container with docker-compose. It is important for the project code which the Psalm will analyze to be accessible inside the docker.
  2. Inside the docker container with the code install psalm: composer require --dev vimeo/psalm and generate the psalm.xml file ./vendor/bin/psalm --init
  3. Configure this extension accordingly (example below)
// The name of your PHP service in your docker compose configuration (i.e., the
// first YAML label/indentation beneath outer 'services:' indentation level)
"psalm_docker.dockerServiceName": "php",
// Array of either 1 or 2 absolute paths to the docker compose Yaml files on your
// host filesystem. Always put your override path first (if applicable)
"psalm_docker.localDockerComposePaths": [
"/your/host/path/docker-compose.override.yml",
"/your/host/path/docker-compose.yml"
],
// Absolute path to the psalm-language-server binary (path inside the container!)
"psalm_docker.remotePsalmServerPath": "/app/vendor/bin/psalm-language-server",
// Absolute path of your project/repo for your host filesystem
"psalm_docker.localPath": "/your/host/path",
// Absolute path of your project/repo inside your docker filesystem
"psalm_docker.remotePath": "/app",
// Absolute path to your psalm XML config file inside your docker filesystem
"psalm_docker.remotePsalmXmlPath": "/app/psalm.xml",
// Domain or IP address where the container can reach back to your host. // See https://stackoverflow.com/a/62431165 on how you can configure 'host.docker.internal'
// or alternatively, if you are using default networking, you should be able to
// simply use the IP address '172.17.0.1'
// (Note: this is ignored if psalm_docker.ngrok is set to true. See below)
"psalm_docker.dockerHostDomainOrIp": "host.docker.internal",
// An alternative to the 'dockerHostDomainOrIp' setting. Set this to true to make
// the extension use ngrok to bypass the need for the docker image to reach the
// host via a local network port. Instead, it will use an ngrok dynamic domain
// to go via an internet tunnel
"psalm_docker.ngrok": false,
// Signup for free at https://dashboard.ngrok.com/login for token to allow TCP tunnels
// @see https://dashboard.ngrok.com/get-started/your-authtoken
"psalm_docker.ngrokAuthToken": "ABC123"

See https://dev.to/natterstefan/docker-tip-how-to-get-host-s-ip-address-inside-a-docker-container-5anh#:~:text=On%20Docker%20for%20Linux,%20the,you%20are%20using%20default%20networking. for more info on how to access the host from inside the docker container

Troubleshooting

Debug Output

Set debug mode to true to get debug output to diagnose problems. The output will appear in your 'Output' tool window under an output channel named 'Psalm Docker Debug'

"psalm_docker.debug": true

Using ngrok Tunnel

If you have a non-standard docker configuration or are having issues with the docker container communicating back to the vscode host, you can set the config option psalm_docker.ngrok to true as well as adding your ngrok auth token to psalm_docker.ngrokAuthToken. This will mean ngrok is utilised to go via an internet tunnel rather than directly through the local network

See https://dashboard.ngrok.com/get-started/your-authtoken

Contributing

You can build and test locally in Visual Studio this locally using npm:

npm install
npm run build

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Psalm Docker VS Code

This plugin is a fork made from the psalm-docker-vscode extension by Ignas2526 (here https://github.com/Ignas2526/psalm-docker-vscode). It solves some problems with that extension to make it useable:

  • Allows multiple docker-compose.yml files (i.e., allow for override file + default file together)
  • Updates the xdebug command line disabling feature to use xdebug v3 rather than xdebug v2
  • Adds some examples to the readme so there's less guess work :)

Visual Studio Code plugin for Psalm. This extension allows for the Psalm server to run inside the docker container. It works by having a docker-compose run the psalm server. Next, it translates the file paths between the host OS and the docker container. This extension is based on the official Psalm VS Code Extension extension.

Features

  • Runs Psalm's analysis when opening and saving files using the Language Server Protocol for communication.

Installation & Configuration

  1. Have a working docker container with docker-compose. It is important for the project code which the Psalm will analyze to be accessible inside the docker.
  2. Inside the docker container with the code install psalm: composer require --dev vimeo/psalm and generate the psalm.xml file ./vendor/bin/psalm --init
  3. Configure this extension accordingly (example below)
// The name of your PHP service in your docker compose configuration (i.e., the
// first YAML label/indentation beneath outer 'services:' indentation level)
"psalm_docker.dockerServiceName": "php",
// Array of either 1 or 2 absolute paths to the docker compose Yaml files on your
// host filesystem. Always put your override path first (if applicable)
"psalm_docker.localDockerComposePaths": [
"/your/host/path/docker-compose.override.yml",
"/your/host/path/docker-compose.yml"
],
// Absolute path to the psalm-language-server binary (path inside the container!)
"psalm_docker.remotePsalmServerPath": "/app/vendor/bin/psalm-language-server",
// Absolute path of your project/repo for your host filesystem
"psalm_docker.localPath": "/your/host/path",
// Absolute path of your project/repo inside your docker filesystem
"psalm_docker.remotePath": "/app",
// Absolute path to your psalm XML config file inside your docker filesystem
"psalm_docker.remotePsalmXmlPath": "/app/psalm.xml",
// Domain or IP address where the container can reach back to your host. // See https://stackoverflow.com/a/62431165 on how you can configure 'host.docker.internal'
// or alternatively, if you are using default networking, you should be able to
// simply use the IP address '172.17.0.1'
// (Note: this is ignored if psalm_docker.ngrok is set to true. See below)
"psalm_docker.dockerHostDomainOrIp": "host.docker.internal",
// An alternative to the 'dockerHostDomainOrIp' setting. Set this to true to make
// the extension use ngrok to bypass the need for the docker image to reach the
// host via a local network port. Instead, it will use an ngrok dynamic domain
// to go via an internet tunnel
"psalm_docker.ngrok": false,
// Signup for free at https://dashboard.ngrok.com/login for token to allow TCP tunnels
// @see https://dashboard.ngrok.com/get-started/your-authtoken
"psalm_docker.ngrokAuthToken": "ABC123"

See https://dev.to/natterstefan/docker-tip-how-to-get-host-s-ip-address-inside-a-docker-container-5anh#:~:text=On%20Docker%20for%20Linux,%20the,you%20are%20using%20default%20networking. for more info on how to access the host from inside the docker container

Troubleshooting

Debug Output

Set debug mode to true to get debug output to diagnose problems. The output will appear in your 'Output' tool window under an output channel named 'Psalm Docker Debug'

"psalm_docker.debug": true

Using ngrok Tunnel

If you have a non-standard docker configuration or are having issues with the docker container communicating back to the vscode host, you can set the config option psalm_docker.ngrok to true as well as adding your ngrok auth token to psalm_docker.ngrokAuthToken. This will mean ngrok is utilised to go via an internet tunnel rather than directly through the local network

See https://dashboard.ngrok.com/get-started/your-authtoken

Contributing

You can build and test locally in Visual Studio this locally using npm:

npm install
npm run build

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Psalm Docker VS Code

This plugin is a fork made from the psalm-docker-vscode extension by Ignas2526 (here https://github.com/Ignas2526/psalm-docker-vscode). It solves some problems with that extension to make it useable:

  • Allows multiple docker-compose.yml files (i.e., allow for override file + default file together)
  • Updates the xdebug command line disabling feature to use xdebug v3 rather than xdebug v2
  • Adds some examples to the readme so there's less guess work :)

Visual Studio Code plugin for Psalm. This extension allows for the Psalm server to run inside the docker container. It works by having a docker-compose run the psalm server. Next, it translates the file paths between the host OS and the docker container. This extension is based on the official Psalm VS Code Extension extension.

Features

  • Runs Psalm's analysis when opening and saving files using the Language Server Protocol for communication.

Installation & Configuration

  1. Have a working docker container with docker-compose. It is important for the project code which the Psalm will analyze to be accessible inside the docker.
  2. Inside the docker container with the code install psalm: composer require --dev vimeo/psalm and generate the psalm.xml file ./vendor/bin/psalm --init
  3. Configure this extension accordingly (example below)
// The name of your PHP service in your docker compose configuration (i.e., the
// first YAML label/indentation beneath outer 'services:' indentation level)
"psalm_docker.dockerServiceName": "php",
// Array of either 1 or 2 absolute paths to the docker compose Yaml files on your
// host filesystem. Always put your override path first (if applicable)
"psalm_docker.localDockerComposePaths": [
"/your/host/path/docker-compose.override.yml",
"/your/host/path/docker-compose.yml"
],
// Absolute path to the psalm-language-server binary (path inside the container!)
"psalm_docker.remotePsalmServerPath": "/app/vendor/bin/psalm-language-server",
// Absolute path of your project/repo for your host filesystem
"psalm_docker.localPath": "/your/host/path",
// Absolute path of your project/repo inside your docker filesystem
"psalm_docker.remotePath": "/app",
// Absolute path to your psalm XML config file inside your docker filesystem
"psalm_docker.remotePsalmXmlPath": "/app/psalm.xml",
// Domain or IP address where the container can reach back to your host. // See https://stackoverflow.com/a/62431165 on how you can configure 'host.docker.internal'
// or alternatively, if you are using default networking, you should be able to
// simply use the IP address '172.17.0.1'
// (Note: this is ignored if psalm_docker.ngrok is set to true. See below)
"psalm_docker.dockerHostDomainOrIp": "host.docker.internal",
// An alternative to the 'dockerHostDomainOrIp' setting. Set this to true to make
// the extension use ngrok to bypass the need for the docker image to reach the
// host via a local network port. Instead, it will use an ngrok dynamic domain
// to go via an internet tunnel
"psalm_docker.ngrok": false,
// Signup for free at https://dashboard.ngrok.com/login for token to allow TCP tunnels
// @see https://dashboard.ngrok.com/get-started/your-authtoken
"psalm_docker.ngrokAuthToken": "ABC123"

See https://dev.to/natterstefan/docker-tip-how-to-get-host-s-ip-address-inside-a-docker-container-5anh#:~:text=On%20Docker%20for%20Linux,%20the,you%20are%20using%20default%20networking. for more info on how to access the host from inside the docker container

Troubleshooting

Debug Output

Set debug mode to true to get debug output to diagnose problems. The output will appear in your 'Output' tool window under an output channel named 'Psalm Docker Debug'

"psalm_docker.debug": true

Using ngrok Tunnel

If you have a non-standard docker configuration or are having issues with the docker container communicating back to the vscode host, you can set the config option psalm_docker.ngrok to true as well as adding your ngrok auth token to psalm_docker.ngrokAuthToken. This will mean ngrok is utilised to go via an internet tunnel rather than directly through the local network

See https://dashboard.ngrok.com/get-started/your-authtoken

Contributing

You can build and test locally in Visual Studio this locally using npm:

npm install
npm run build

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Psalm Docker VS Code

This plugin is a fork made from the psalm-docker-vscode extension by Ignas2526 (here https://github.com/Ignas2526/psalm-docker-vscode). It solves some problems with that extension to make it useable:

  • Allows multiple docker-compose.yml files (i.e., allow for override file + default file together)
  • Updates the xdebug command line disabling feature to use xdebug v3 rather than xdebug v2
  • Adds some examples to the readme so there's less guess work :)

Visual Studio Code plugin for Psalm. This extension allows for the Psalm server to run inside the docker container. It works by having a docker-compose run the psalm server. Next, it translates the file paths between the host OS and the docker container. This extension is based on the official Psalm VS Code Extension extension.

Features

  • Runs Psalm's analysis when opening and saving files using the Language Server Protocol for communication.

Installation & Configuration

  1. Have a working docker container with docker-compose. It is important for the project code which the Psalm will analyze to be accessible inside the docker.
  2. Inside the docker container with the code install psalm: composer require --dev vimeo/psalm and generate the psalm.xml file ./vendor/bin/psalm --init
  3. Configure this extension accordingly (example below)
// The name of your PHP service in your docker compose configuration (i.e., the
// first YAML label/indentation beneath outer 'services:' indentation level)
"psalm_docker.dockerServiceName": "php",
// Array of either 1 or 2 absolute paths to the docker compose Yaml files on your
// host filesystem. Always put your override path first (if applicable)
"psalm_docker.localDockerComposePaths": [
"/your/host/path/docker-compose.override.yml",
"/your/host/path/docker-compose.yml"
],
// Absolute path to the psalm-language-server binary (path inside the container!)
"psalm_docker.remotePsalmServerPath": "/app/vendor/bin/psalm-language-server",
// Absolute path of your project/repo for your host filesystem
"psalm_docker.localPath": "/your/host/path",
// Absolute path of your project/repo inside your docker filesystem
"psalm_docker.remotePath": "/app",
// Absolute path to your psalm XML config file inside your docker filesystem
"psalm_docker.remotePsalmXmlPath": "/app/psalm.xml",
// Domain or IP address where the container can reach back to your host. // See https://stackoverflow.com/a/62431165 on how you can configure 'host.docker.internal'
// or alternatively, if you are using default networking, you should be able to
// simply use the IP address '172.17.0.1'
// (Note: this is ignored if psalm_docker.ngrok is set to true. See below)
"psalm_docker.dockerHostDomainOrIp": "host.docker.internal",
// An alternative to the 'dockerHostDomainOrIp' setting. Set this to true to make
// the extension use ngrok to bypass the need for the docker image to reach the
// host via a local network port. Instead, it will use an ngrok dynamic domain
// to go via an internet tunnel
"psalm_docker.ngrok": false,
// Signup for free at https://dashboard.ngrok.com/login for token to allow TCP tunnels
// @see https://dashboard.ngrok.com/get-started/your-authtoken
"psalm_docker.ngrokAuthToken": "ABC123"

See https://dev.to/natterstefan/docker-tip-how-to-get-host-s-ip-address-inside-a-docker-container-5anh#:~:text=On%20Docker%20for%20Linux,%20the,you%20are%20using%20default%20networking. for more info on how to access the host from inside the docker container

Troubleshooting

Debug Output

Set debug mode to true to get debug output to diagnose problems. The output will appear in your 'Output' tool window under an output channel named 'Psalm Docker Debug'

"psalm_docker.debug": true

Using ngrok Tunnel

If you have a non-standard docker configuration or are having issues with the docker container communicating back to the vscode host, you can set the config option psalm_docker.ngrok to true as well as adding your ngrok auth token to psalm_docker.ngrokAuthToken. This will mean ngrok is utilised to go via an internet tunnel rather than directly through the local network

See https://dashboard.ngrok.com/get-started/your-authtoken

Contributing

You can build and test locally in Visual Studio this locally using npm:

npm install
npm run build

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages