VS code copilot tips
2024
- install and add extension, youtube
- “Now that you’ve signed up for GitHub Copilot and activated the extension, let’s verify that it’s actually active.”
- Open Visual Studio Code.
- Notice the GitHub Copilot icon in the status bar, which indicates that GitHub Copilot is active.
- Notice also chat-message icons on the left bar.
Javascript tips
Keyboard - space bar
How to disable the page scroll down when i pressed the spacebar? See:
window.addEventListener('keydown', function(e) {
if(e.keyCode == 32 && e.target == document.body) {
e.preventDefault();
}
});
P5 Full Screen
Otherwise in some mobile phones dragging scrolls the page etc., see full screen.
// full screen: https://editor.p5js.org/slow_izzm/sketches/lgzf4tJk6
function touchStarted() {
let fs = fullscreen();
if (!fs) {
fullscreen(true);
}
}
P5 Encoding
- If json created in R, see json-encoding tip here.
data.json <- jsonlite::toJSON(data.r.list)
con <- file(output.editfile,encoding="UTF-8")
write(data.json, file=con)
<div id="sketch-holder-jt-books"></div> // your canvas names
<meta charset="UTF-8">
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/p5.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/addons/p5.sound.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.2/addons/p5.dom.min.js"></script>
<script>
... your blog post script goes here.
canvas.parent('sketch-holder-jt-books')
...
</script>
P5 audio
Time to time AudioContext was not allowed to start. Add following code to js-file.
// Errors messages (CTRL SHIFT i) Chrome Developer Tools:
// The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu
// DevTools failed to load SourceMap: Could not load content for https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/addons/p5.sound.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
function touchStarted() {
if (getAudioContext().state !== 'running') {
getAudioContext().resume();
}
}
Sourced p5 libraries: https://cdnjs.com/libraries/p5.js
Sourcing js code on blog post
<div id="sketch-holder"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/p5.min.js"></script>
<script src="/<blogpost or page>/<jscodefile>"></script>
For example, if page is called pokenappis.md your code looks like this:
<div id="sketch-holder"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/p5.min.js"></script>
<script src="/pokenappis/test.js"></script>
Note, this is a test page: pokenappis
Local Server
Local server can be created different ways, see: https://github.com/processing/p5.js/wiki/Local-server. However, currently my favourite is
Note: testing locally is easier, if p5.js coding is tested with local HTML file. Finally, it can be shown as referenced js or in iFrame.
Chrome Developer tools
Use the View / Developer / Developer Tools menu in Chrome to open the developer tools window.
- CTRL - SHIFT - i
- breakpoints
- variable values
- … more information here.
p5 editor
I have been using Notepad++ and 200! Ok! Web server for Chrome with additional html file for local testing. However, better color coding and instant testing in local service possible with:
Processing 3.5.4
Problem: if you want mix html code and p5, e.g. at hosted Github pages.
- select install library and tab “Modes” p5.js mode
- Give Java access.
- See also “Examples” tab, if something interesting available
Visual Code - vscode
- Visual Studio Code install with defaults.
- Go to p5.vscode and install plug-in – note that VScode should be installed first. “p5.vscode helps you create p5.js projects in Visual Studio Code. It also includes autocompletion, a simple tool to browse and install third-party p5 libraries, and the Live Server extension.”
This seems to be perfect ✔ for testing and learning, see more instructions here:
- ctrl-shift-p on Windows and then start typing and select Create p5.js Project.
- When creating a new project, please select an empty folder.
- To install p5 libraries: Open the Command Palette, then start typing and select Install p5 Contributor Library
- instead of git repo, I decided to store p5 experiments to dropbox /2021 folder (simplicity) to keep these code safe (whether anything important is created or not).
Fig) “Go Live” button facilates debugging and testing and port:5501 to close it ↻. Next p5 project, make experiments in VScode and time to time & finally copy js code to repo and push code to server.
- Change default liveserver path by writing to “liveserver” (CTRL+SHIFT+P) and type “Preferences”. View-Command Palette: “Liveserver: change workspace” or
- Create a folder under the root of the site, called .vscode
- Add a file there, called settings.json
- Edit the file and add the following (thanks to nitech) - but I did something work but this was not working for:
{
"liveServer.settings.root": "/git/christmaself"
}
Preview - markdown md: To open a separate preview window, use the keyboard shortcut Ctrl+Shift+V
Create new p5 project in VS
I have created template to dropbox folder vscode/p5vscode.
- Copy and rename it. It contains template for config, sketch, index and libraries.
- Test it in local server.
- Start coding, e.g. 3/2021 I started vscode/p5vscode_animation_csv project to animate tablet pen drawings created in my Processing drawing Java application.
tips
- auto indent, i.e. prettify code as: shift-alt-f how-do-you-format-code-in-visual-studio-code-vscode
- canvas id and js code, see js code to Jekyll post. Time to time I close views by accident. Get views back as
- Git and Dropbox folders have projects, it is possible to open multiple projects in vscode. <!–
arrows: https://www.toptal.com/designers/htmlarrows/arrows/
Symbols, these works well: https://www.w3schools.com/charsets/ref_utf_arrows.asp
–>
- View → Appearance ↘ Show Side Bar ctrl-B
- View → Appearance ↘ Show Panel ctrl-J
Other stuff
- View → Control Palette ctrl-shift-p ↘ (write e.g. Install p5 Contributor Library)
Edit index.html created earlier by adding sketch-holder-div to body (this is used in _posts jekyll and libraries needed) for example as
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sketch</title>
<script src="libraries/p5.min.js"></script>
<script src="libraries/p5.sound.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.2/addons/p5.dom.min.js"></script>
<link rel="stylesheet" type="text/css" href="testlocal_html/style.css">
</head>
<body>
<div id="sketch-holder-jt"></div>
<script src="sketch.js"></script>
</body>
</html>
- Symbols 🐇🐇🐇🐇🐇🐇🐇🐇
∎
Leaflet
- an open-source JavaScript library for mobile-friendly interactive maps.
Glitch
- Glitch
- Glitch example map.
P5 embed
Note: code copied in p5-editor, originally developed by plancP5:
- Fixed size: embedded iframe 720x720px as
iFrame shared, simply click share-button in online editor and select embedded share.
P5 in blog
Discussion: P5 in blog post - discourse. Only one P5 frame per blog post, see e.g. this discussion.
P5 graphics
Angle between two vectors were calculated to check whether there is a need to stop a dude or not, see Christmaself. angleBetween: note use the most recent p5 as (2022/01):
<!--- <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.4/p5.min.js"></script> NEW P5!! --->
<script src="https://cdn.jsdelivr.net/npm/p5@1.4.0/lib/p5.js"></script>
Note that image(img); do not work anymore. Use instead: image(img, 0, 0);.
Embed multiple sketches, original example from: happycoding.io
Gmail - inbox cleaning
- search files larger than 8mB as “size:8000000”