Thu 18. January 2024 | 2024-01-18
How to paste using the yank register instead of delete register
"0p
Or skip delete register with black hole:
"_d
https://stackoverflow.com/questions/11993851/how-to-delete-not-cut-in-vim
Thu 18. January 2024 | 2024-01-18
https://useful-snippets.netlify.app/posts/vim/
Webstorm keyboard shortcuts
Sun 14. January 2024 | 2024-01-14
To search replace the following:
</b>:
to:
:</b>
You can use another separator.
Example using # instead of /:
:8,27s
Sat 13. January 2024 | 2024-01-13
GitHub
Docs
Prod
Sat 13. January 2024 | 2024-01-13
^
/ _ \
| : |
| 0. |
/] : [\
/_] _. [_\
| |
| |
|
|
Sat 13. January 2024 | 2024-01-13
defaultValue=src/components/
read -e -p "Where is component located? (default: $defaultValue): " location
location=${location:-$defaultValue}
cd $location
read -e -p "Enter component name you want to rename: " currentName
cd $currentName
if [[ "$currentName" == */ ]]; then
currentName=${currentName%/}
fi
indexFile=index.ts
componentFile=$currentName.tsx
storyFile=$currentName.stories.tsx
stylesheetFile=$currentName.module.css
stylesheetScssFile=$currentName.module.scss
if [[ $currentName != "" ]]; then
echo
echo "This will try and rename:"
echo "---- folder -----"
echo $currentName
echo
echo "---- files -----"
echo - $indexFile
echo - $componentFile
echo - $storyFile
echo - $stylesheetFile
echo - $stylesheetScssFile
echo
read -p "Enter new name: " newName
if [[ $newName != "" ]]; then
echo
echo "search replace in files"
echo
sed -i "s/$currentName/$newName/g" $indexFile
sed -i "s/$currentName/$newName/g" $componentFile
sed -i "s/$currentName/$newName/g" $storyFile
sed -i "s/$currentName/$newName/g" $stylesheetFile
sed -i "s/$currentName/$newName/g" $stylesheetScssFile
echo
echo "rename files and folders"
echo
mv $componentFile $newName.tsx
mv $storyFile $newName.stories.tsx
mv $stylesheetFile $newName.module.css
mv $stylesheetScssFile $newName.module.scss
cd ..
mv $currentName $newName/
fi
fi
Sat 13. January 2024 | 2024-01-13
hvor mye er deaktivert/ufordel i Webstorm/VSCode når du har på Vim plugin?
Webstorm IdeaVim
- IDE's multi-select with Ctrl D doesn't work with entering insert mode using eg. using
a
- but
c works
- Annoying to save file that is edited in commit changes window
- if in normal mode, pressing "Esc" will exit "commit changes"-window
- unlike when terminal is focused, you can't disable the "Esc-> focus normal file view"
paste from OS registry (copy paste from UI app into Webstorm in IdeaVim) Kan fikses ved å registrere ctrl C og ctrl V som IDE-shortcuts (se https://useful-snippets.netlify.app/posts/webstorm-ideavim-shortcut-settings/)
- vim search not as good as built-in search
- vim won't highlight/preview as you search/replace
- to activate built-in search you would have to give up
ctrl F and ctrl H to IDE
VSCode's Vim
- Fuzzy finder
- Search?
- Search in files?
Sat 06. January 2024 | 2024-01-06
If you mistakenly forget to unlink, you can manually clean up artifacts from yarn or npm.
For npm, the link command creates global packages which can be removed by executing:
sudo npm rm --global "mylib"
- https://github.com/jasonsturges/vite-typescript-npm-package
- Try
Maybe unlink package?
npm unlink @scope/package
clear / swap out cache on either project
npm install --cache /tmp/empty-cache
restart all servers
- try uninstalling globally and reinstalling dependency:
sudo npm rm --global @scope/library
npm rm --global @scope/library
npm ls --global @scope/library
npm uninstall @scope/library
npm i @scope/librayr@latest --save-exact
try deleting package.json
try restarting servers???
Sat 06. January 2024 | 2024-01-06
https://react.dev/reference/react/createContext
context.ts
import {createContext} from 'react';
export interface ContextProps {
darkTheme: boolean;
}
export const AppContext = createContext<ContextProps>({
darkTheme: true,
});
App
const Context2 = Context as React.Context<ContextProps>;
return (
<AppContext2.Provider value={{darkTheme: false}}>
{}
Sat 06. January 2024 | 2024-01-06
Start
tror det er viktig å uninstalle @scope/library først?
npm link in library
npm link @scope/library in app
See if npm link works
Run npm run build in the library. See if it updates the app.
If stuff doesn't update in app, try
- Restart app's dev server
- Try as suggested in response from
npm cache clean:
npm install --cache /tmp/empty-cache
Then restart app dev server
Maybe try this on the app side
npm unlink @scope/library
npm link @scope/library
Maybe also try this on the library side
npm unlink @scope/library
npm link
I don't think it's necessary to uninstall library from node modules.
If app cant find css
attempting to import css from app (like with bootstrap css) does not always work for some reason
inject css into js so that the package imports css by itself
Reference
When npm link works, npm ls @scope/package should return:
app@0.1.0 /home/user/code/app
└── @scope/package@0.1.0 extraneous -> ./../packages/package-components-project
Useful information about npm link and cleaning up and stuff, see README!: https://github.com/jasonsturges/vite-typescript-npm-package
Sat 06. January 2024 | 2024-01-06
Remove changes made to node_modules!
Remove ~/.npm
Delete node_modules
Reinstall
Sat 06. January 2024 | 2024-01-06
HTML
with data attributes ✔
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Static Template</title>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN"
crossorigin="anonymous"
/>
</head>
<body>
<div style="display: flex; background: #f5f2f2;">
<aside>
<div id="list-example" class="list-group">
<a class="list-group-item list-group-item-action" href="#heading1">
Heading 1
</a>
<a class="list-group-item list-group-item-action" href="#heading2">
Heading 2
</a>
<a class="list-group-item list-group-item-action" href="#heading3">
Heading 3
</a>
<a class="list-group-item list-group-item-action" href="#heading4">
Heading 4
</a>
<a class="list-group-item list-group-item-action" href="#heading5">
Heading 5
</a>
</div>
</aside>
<article
data-bs-spy="scroll"
data-bs-target="#list-example"
tabIndex="0"
style="position: relative; height: 500px; overflow-y: scroll;"
>
<h1>Hello CodeSandbox</h1>
<h2 id="heading1">Heading 1</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading2">Heading 2</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading3">Heading 3</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading4">Heading 4</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading5">Heading 5</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
</article>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script>
</script>
</body>
</html>
with JS ❌
Highlight only goes down
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Static Template</title>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN"
crossorigin="anonymous"
/>
</head>
<body>
<div style="display: flex; background: #f5f2f2;">
<aside>
<div id="list-example" class="list-group">
<a class="list-group-item list-group-item-action" href="#heading1">
Heading 1
</a>
<a class="list-group-item list-group-item-action" href="#heading2">
Heading 2
</a>
<a class="list-group-item list-group-item-action" href="#heading3">
Heading 3
</a>
<a class="list-group-item list-group-item-action" href="#heading4">
Heading 4
</a>
<a class="list-group-item list-group-item-action" href="#heading5">
Heading 5
</a>
</div>
</aside>
<article style="position: relative; height: 500px; overflow-y: scroll;">
<h1>Hello CodeSandbox</h1>
<h2 id="heading1">Heading 1</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading2">Heading 2</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading3">Heading 3</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading4">Heading 4</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading5">Heading 5</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
</article>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script src="jquery-3.6.4.min.js"></script>
<script>
const scrollSpy = new bootstrap.ScrollSpy(document.body, {
target: "#list-example"
});
</script>
</body>
</html>
With JS ✔
<!DOCTYPE html>
<html lang="en">
<head>
<title>Static Template</title>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD"
crossorigin="anonymous"
/>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"
integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN"
crossorigin="anonymous"
></script>
</head>
<body>
<div style="background: #f5f2f2;">
<aside class="navbar navbar-nav fixed-top">
<div id="list-example" class="list-group">
<a class="list-group-item list-group-item-action" href="#heading1">
Heading 1
</a>
<a class="list-group-item list-group-item-action" href="#heading2">
Heading 2
</a>
<a class="list-group-item list-group-item-action" href="#heading3">
Heading 3
</a>
<a class="list-group-item list-group-item-action" href="#heading4">
Heading 4
</a>
<a class="list-group-item list-group-item-action" href="#heading5">
Heading 5
</a>
</div>
</aside>
<article>
<h1>Hello CodeSandbox</h1>
<h2 id="heading1">Heading 1</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading2">Heading 2</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading3">Heading 3</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading4">Heading 4</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading5">Heading 5</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
</article>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script>
document.addEventListener("DOMContentLoaded", function () {
var scrollSpy = new bootstrap.ScrollSpy(document.body, {
target: "#navbar"
});
});
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD"
crossorigin="anonymous"
/>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"
integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN"
crossorigin="anonymous"
></script>
</head>
<body class="m-3">
<center>
<div id="navbar">
<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#geeks1">Geeks</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#for">For</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#geeks2">Geeks</a>
</li>
</ul>
</nav>
<br /><br />
<h1 class="text-success">GeeksforGeeks</h1>
<strong>Scrollspy in Bootstrap 5 via Javascript</strong>
<br />
<div id="geeks1" class="border border-dark" style="padding: 20px 20px;">
<h1>About Us</h1>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>
GeeksforGeeks is a one-stop destination for Computer Science
students. Computer Science is a huge field, thus students must
select a suitable platform that can meet all their needs, including
Tutorials & Courses, Placement Preparation, and Interview
Experiences, among others.
</p>
<p></p>
</div>
<div id="for" class="border border-warning" style="padding: 20px 20px;">
<h1>Advantages</h1>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>
1. One-Stop Destination for Algorithms and Data Structures Knowledge
</p>
<p>2. Learn Multiple Programming Languages</p>
<p>
3. Boost Your Skills with Various GeeksforGeeks Courses
</p>
</div>
<div
id="geeks2"
class="border border-secondary"
style="padding: 20px 20px;"
>
<h1>Technology</h1>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>EEEEEEEEE</p>
<p>
A Computer Science portal for geeks. It contains well written, well
thought and well explained computer science and programming
articles, quizzes and practice/competitive programming/company
interview Questions.
</p>
<p>Prepare With Us</p>
<p>Get Hired With Us</p>
<p>Grow With Usling!</p>
</div>
</div>
</center>
<script>
document.addEventListener("DOMContentLoaded", function () {
var scrollSpy = new bootstrap.ScrollSpy(document.body, {
target: "#navbar"
});
});
</script>
</body>
</html>
React
With data attributes ❌
not working at all
With JS 1: ✔
import "./styles.css";
import "bootstrap/dist/css/bootstrap.css";
import "bootstrap/dist/js/bootstrap.bundle.min.js";
import * as bootstrap from "bootstrap";
import "../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js";
import { useState, useEffect } from "react";
export default function App() {
useEffect(() => {
const scrollSpy = new bootstrap.ScrollSpy(document.body, {
target: "#list-example"
});
}, []);
return (
<div
style={{
background: "#f5f2f2"
}}
>
<aside class="navbar navbar-nav fixed-top">
<div id="list-example" className="list-group">
<a
className="list-group-item list-group-item-action"
href="#heading1"
>
Heading 1
</a>
<a
className="list-group-item list-group-item-action"
href="#heading2"
>
Heading 2
</a>
<a
className="list-group-item list-group-item-action"
href="#heading3"
>
Heading 3
</a>
<a
className="list-group-item list-group-item-action"
href="#heading4"
>
Heading 4
</a>
<a
className="list-group-item list-group-item-action"
href="#heading5"
>
Heading 5
</a>
<a
className="list-group-item list-group-item-action"
href="#heading6"
>
Heading 6
</a>
</div>
</aside>
<article>
<h1>Hello CodeSandbox</h1>
<h2 id="heading1">Heading 1</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading2">Heading 2</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading3">Heading 3</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading4">Heading 4</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading5">Heading 5</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading6">Heading 6</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
</article>
</div>
);
}
With JS 2 ❌
Highlight only goes down
import "./styles.css";
import "bootstrap/dist/css/bootstrap.css";
import "bootstrap/dist/js/bootstrap.bundle.min.js";
import * as bootstrap from "bootstrap";
import "../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js";
import { useState, useEffect } from "react";
export default function App() {
useEffect(() => {
const scrollSpy = new bootstrap.ScrollSpy(document.body, {
target: "#list-example"
});
}, []);
return (
<div
style={{
display: "flex",
background: "#f5f2f2"
}}
>
<aside>
<div id="list-example" className="list-group">
<a
className="list-group-item list-group-item-action"
href="#heading1"
>
Heading 1
</a>
<a
className="list-group-item list-group-item-action"
href="#heading2"
>
Heading 2
</a>
<a
className="list-group-item list-group-item-action"
href="#heading3"
>
Heading 3
</a>
<a
className="list-group-item list-group-item-action"
href="#heading4"
>
Heading 4
</a>
<a
className="list-group-item list-group-item-action"
href="#heading5"
>
Heading 5
</a>
<a
className="list-group-item list-group-item-action"
href="#heading6"
>
Heading 6
</a>
</div>
</aside>
<article
data-bs-spy="scroll"
data-bs-target="#list-example"
tab-index="0"
style={{ position: "relative", height: "500px", overflowY: "scroll" }}
>
<h1>Hello CodeSandbox</h1>
<h2 id="heading1">Heading 1</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading2">Heading 2</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading3">Heading 3</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading4">Heading 4</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading5">Heading 5</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<h2 id="heading6">Heading 6</h2>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
</article>
</div>
);
}