<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Thiago Silva Lopes</title>
    <description>The latest articles on Forem by Thiago Silva Lopes (@thiagoow).</description>
    <link>https://forem.com/thiagoow</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F833822%2Faf924a61-2638-456a-8a13-071f935e7667.png</url>
      <title>Forem: Thiago Silva Lopes</title>
      <link>https://forem.com/thiagoow</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/thiagoow"/>
    <language>en</language>
    <item>
      <title>How to use Pug &amp; Sass in Webpack 5 - 2022 🐶</title>
      <dc:creator>Thiago Silva Lopes</dc:creator>
      <pubDate>Thu, 04 Aug 2022 21:30:00 +0000</pubDate>
      <link>https://forem.com/thiagoow/how-to-use-pug-sass-in-webpack-5-2022-5cpk</link>
      <guid>https://forem.com/thiagoow/how-to-use-pug-sass-in-webpack-5-2022-5cpk</guid>
      <description>&lt;p&gt;Check on this post the step-by-step you need to configure Sass &amp;amp; Pug.js (previously know as JADE) in Webpack 5 with HMR fully working.&lt;/p&gt;

&lt;h2&gt;
  
  
  👨🏻‍💻 Initialize your project with Webpack 5:
&lt;/h2&gt;

&lt;p&gt;1- Create the &lt;em&gt;package.json&lt;/em&gt; for your project:&lt;br&gt;
&lt;code&gt;yarn init -y&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;2- Install webpack together with his CLI and dev-server:&lt;br&gt;
&lt;code&gt;yarn add webpack webpack-cli webpack-dev-server -D&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* ☝🏽 The -D flag install these as a devDependency. 
Since webpack already compiles &amp;amp; bundle our app for build. */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🎨 Configuring Sass &amp;amp; Pug.js on Webpack:
&lt;/h2&gt;

&lt;p&gt;1- Install the needed Sass dependencies:&lt;br&gt;
&lt;code&gt;yarn add sass sass-loader css-loader -D&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;2- Install the needed Pug dependencies:&lt;br&gt;
&lt;code&gt;yarn add pug-plugin -D&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;3- With 'pug-plugin' you can insert your Images, Styles, Fonts &amp;amp; Scripts inside any pug file. With no need to use "require()" in front of &lt;strong&gt;href&lt;/strong&gt; or &lt;strong&gt;src&lt;/strong&gt; path anymore:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fat95j2agpomnxfs4sqky.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fat95j2agpomnxfs4sqky.jpg" alt="Pug code Snippet" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4- To make it all work, create a "webpack.config.js" file on the root of your project, &amp;amp; add the following settings on it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;//webpack.config.js&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;path&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;PugPlugin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;pug-plugin&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;__dirname&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dist/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="na"&gt;publicPath&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;PugPlugin&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;pretty&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;auto&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="c1"&gt;//☝🏽 Format HTML (only in dev mode)&lt;/span&gt;
      &lt;span class="na"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Insert your PUG templates here&lt;/span&gt;
        &lt;span class="na"&gt;index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./src/views/index.pug&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;about&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./src/views/about.pug&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;js&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// JS output filename with hash for unique id&lt;/span&gt;
        &lt;span class="na"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;assets/js/[name].[contenthash:8].js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;css&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// CSS output filename with hash for unique id&lt;/span&gt;
        &lt;span class="na"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;assets/css/[name].[contenthash:8].css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;module&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;rules&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;test&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\.(&lt;/span&gt;&lt;span class="sr"&gt;css|sass|scss&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;$/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;use&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;css-loader&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;sass-loader&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="c1"&gt;//☝🏽 Load Sass files&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// To use images on pug files:&lt;/span&gt;
        &lt;span class="na"&gt;test&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\.(&lt;/span&gt;&lt;span class="sr"&gt;png|jpg|jpeg|ico&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;asset/resource&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;generator&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="na"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;assets/img/[name].[hash:8][ext]&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// To use fonts on pug files:&lt;/span&gt;
        &lt;span class="na"&gt;test&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\.(&lt;/span&gt;&lt;span class="sr"&gt;woff|woff2|eot|ttf|otf|svg&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;$/i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;asset/resource&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;generator&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="na"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;assets/fonts/[name][ext][query]&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;devServer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;static&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;__dirname&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dist&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="na"&gt;watchFiles&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;paths&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;src/**/*.*&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;assets/scss/**/*.*&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="c1"&gt;//☝🏽 Enables live reload in these folders&lt;/span&gt;
      &lt;span class="na"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;usePolling&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;stats&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;errors-only&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="c1"&gt;//☝🏽 For a cleaner dev-server run&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5- Add your Pug files on entry (inside module.exports) &amp;amp; you're ready to go! (you can add more files there later). 🎆 &lt;strong&gt;The HMR will work for any Pug that imports at least 1 Js file, &amp;amp; all Sass files inside 'src' or 'assets' folder❗ 🙌🏼&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📚 Last but not less important:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;You can customize your webpack.config.js and delete or insert anything you like. The code up here it's based on the &lt;a href="https://github.com/webdiscus/pug-plugin" rel="noopener noreferrer"&gt;pug-plugin instructions&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>html</category>
    </item>
    <item>
      <title>8 real useful Chrome Dev &amp; Design extensions 👨🏻‍💻</title>
      <dc:creator>Thiago Silva Lopes</dc:creator>
      <pubDate>Wed, 11 May 2022 02:47:44 +0000</pubDate>
      <link>https://forem.com/thiagoow/8-real-useful-chrome-dev-extensions-ohd</link>
      <guid>https://forem.com/thiagoow/8-real-useful-chrome-dev-extensions-ohd</guid>
      <description>&lt;h3&gt;
  
  
  1- &lt;a href="https://chrome.google.com/webstore/detail/blackbox-select-copy-past/mcgbeeipkmelnpldkobichboakdfaeon" rel="noopener noreferrer"&gt;Blackbox - Select. Copy. Paste &amp;amp; Search&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If the extension title itself wasn't enough to convice you: imagine copy and paste the text on any &lt;em&gt;image, article or video&lt;/em&gt; &lt;strong&gt;you want.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;To spare yourself lots of lost time, you just have to install, create an free account, and copy and paste any text you want.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzuuq3izv6i927qsk8urj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzuuq3izv6i927qsk8urj.png" alt="Screenshot" width="640" height="400"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h3&gt;
  
  
  2- &lt;a href="https://chrome.google.com/webstore/detail/dark-reader/eimadpbcbfnmbkopoojfekhnkhdbieeh" rel="noopener noreferrer"&gt;Dark Reader&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If like me, you are also tired of tiring your eyes with the light theme as default on almost every website, or just don't have the option to change to dark mode.&lt;/p&gt;

&lt;p&gt;This open source MIT-licensed extension, turns literally any website you want in dark mode, &lt;strong&gt;applying dynamic CSS classes&lt;/strong&gt; to change their styles.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2dc7jdz40ohma2ol8yae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2dc7jdz40ohma2ol8yae.png" alt="Screenshot" width="640" height="400"&gt;&lt;/a&gt;&lt;br&gt;
The most amazing part is that &lt;strong&gt;you can export these styles to apply on your website yourself!&lt;/strong&gt; Or simply study why those colors work with each other.&lt;/p&gt;

&lt;p&gt;If all of that wasn't enough, you can change brightness, contrast, and even font styles to your personal favorite. &lt;strong&gt;IN ANY WEBSITE.&lt;/strong&gt;&lt;/p&gt;



&lt;h3&gt;
  
  
  3- &lt;a href="https://chrome.google.com/webstore/detail/colorzilla/bhlhnicpbhignbdhedgjhgdocnmhomnp" rel="noopener noreferrer"&gt;ColorZilla&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Copy the HEX, RGB, HSL and HSV values from any color you see around the web. In addition, you can also analyze all colors applied in CSS of any site.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpbs0g8ojzkeg9s6d4l7f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpbs0g8ojzkeg9s6d4l7f.png" alt="Screenshot" width="640" height="400"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h3&gt;
  
  
  4- &lt;a href="https://chrome.google.com/webstore/detail/grepper/amaaokahonnfjjemodnpmeenfpnnbkco" rel="noopener noreferrer"&gt;Grepper&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;I think we can all relate to spending more time than we'd like to look for a solution to that annoying bug.&lt;/p&gt;

&lt;p&gt;This extension is here to help us decrease this time. Where all users of this extension can publish &lt;strong&gt;code snippets, to any google search, &lt;em&gt;and any framework/language&lt;/em&gt;&lt;/strong&gt;. 🤯😳&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmm40qeftvn1f7aul1ph2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmm40qeftvn1f7aul1ph2.png" alt="Screenshot" width="800" height="620"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h3&gt;
  
  
  5- &lt;a href="https://chrome.google.com/webstore/detail/json-viewer/gbmdgpbipfallnflgajpaliibnhdgobh" rel="noopener noreferrer"&gt;JSON Viewer&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Format any JSON data you see on web. With this extension your JSON response is so much more legible. Analyze raw data no more.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fac8zqz6kudfdcqly3w7j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fac8zqz6kudfdcqly3w7j.png" alt="Screenshot" width="640" height="400"&gt;&lt;/a&gt;&lt;br&gt;
You can even customize the color scheme, highlight, wrap and many others things on your response.&lt;/p&gt;



&lt;h3&gt;
  
  
  6- &lt;a href="https://chrome.google.com/webstore/detail/cssviewer/ggfgijbpiheegefliciemofobhmofgce" rel="noopener noreferrer"&gt;CSS Viewer&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;See many CSS properties for an div/HTML element &lt;strong&gt;just by hovering it.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywjggqna9avxrsd3x5cd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywjggqna9avxrsd3x5cd.png" alt="Screenshot" width="640" height="400"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h3&gt;
  
  
  7- &lt;a href="https://chrome.google.com/webstore/detail/material-icons-for-github/bggfcpfjbdkhfhfmkjpbhnkhnpjjeomc" rel="noopener noreferrer"&gt;Material Icons for GitHub&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz98ciherkka0fs5xqg59.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz98ciherkka0fs5xqg59.png" alt="Screenshot" width="640" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Alright, this one might not be real &lt;em&gt;uuseful&lt;/em&gt;, but adding file &amp;amp; folder icons to GitHub repos really helps find visually what you want. Or just make things more prettier, i guess. 🤓&lt;/p&gt;



&lt;h3&gt;
  
  
  8- &lt;a href="https://chrome.google.com/webstore/detail/visbug/cdockenadnadldjbbgcallicgledbeoc" rel="noopener noreferrer"&gt;VisBug&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;And I saved the best for last.&lt;/strong&gt;&lt;br&gt;
This one is just like CSS Viewer, but with &lt;em&gt;sooo&lt;/em&gt; much &lt;strong&gt;more&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This awesome extension give you power to preview any change you want in a website, just with the right clicks. Color, padding, margin, position, shadows, and it keeps going! 🚀🙌🏼&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq420ep0b5texaxvpug29.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq420ep0b5texaxvpug29.gif" alt="GIF Demo" width="600" height="337"&gt;&lt;/a&gt;&lt;br&gt;
Although may be a little complex to use at first, once you get the hang of it, you'll never need to test a code change a thousand times to get it the way you wanted.&lt;/p&gt;

&lt;h1&gt;
  
  
  That's it❗ 🥳
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;Thank you so much for reading my article this far. Any extension interested you? Or have you not heard of it yet? Tell me in the comments! 🤩😉&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>design</category>
    </item>
    <item>
      <title>Crie uma API simples (CRUD) com JSON Server</title>
      <dc:creator>Thiago Silva Lopes</dc:creator>
      <pubDate>Mon, 11 Apr 2022 00:16:52 +0000</pubDate>
      <link>https://forem.com/thiagoow/crie-uma-api-simples-crud-com-json-server-1lpc</link>
      <guid>https://forem.com/thiagoow/crie-uma-api-simples-crud-com-json-server-1lpc</guid>
      <description>&lt;p&gt;Nesse post veremos como criar uma API para requisições Post, Get, Put &amp;amp; Delete, utilizando JSON Server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Abra o seu terminal, navegue para dentro da pasta do seu projeto, e siga o passo a passo:&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  👨🏻‍💻 Iniciando API e dependências:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Criamos um &lt;strong&gt;package.json&lt;/strong&gt; para administrar esse projeto, usando o comando:&lt;br&gt;
&lt;code&gt;npm init -y&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Instalando as dependências mínimas pro NPM funcionar, digite no terminal:&lt;br&gt;
&lt;code&gt;npm i&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Instalamos o JSON Server globalmente com o comando:&lt;br&gt;
&lt;code&gt;npm i -g json-server&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;E instalamos o JSON Server também como uma dependência de projeto! (No &lt;strong&gt;package.json&lt;/strong&gt; 😉):&lt;br&gt;
&lt;code&gt;npm i json-server&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  📚 Conectando a DataBase:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Criamos/adicionamos o arquivo com extensão 'json' com nossa dB. Mas, para que as requisições funcionem corretamente, sua dB precisa conter:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Todos os dados dentro de uma única array, definida com um nome &lt;code&gt;"Dados": []&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Array (com nome) envolvida em colchetes, ficando da seguinte forma:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Dados&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dado1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dado2&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
 &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;OutrosDados&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Executamos o JsonServer na nossa dB com o comando:&lt;br&gt;
&lt;code&gt;json-server --watch NomeDaSuaDb.json&lt;/code&gt;&lt;br&gt;
E pronto! O JSON-Server já vai criar automaticamente uma rota pra cada array que você criou na sua db.json! 😍😎&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No &lt;strong&gt;package.json&lt;/strong&gt;, no objeto de "scripts" trocamos o script &lt;em&gt;"test"&lt;/em&gt; para &lt;em&gt;"dev"&lt;/em&gt;, com o seguinte conteúdo:&lt;br&gt;
&lt;code&gt;"dev": "json-server --watch NomeDaSuaDb.json --port 3000"&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🥳 Iniciando API
&lt;/h3&gt;

&lt;p&gt;1- Criamos na pasta raiz do projeto um novo arquivo de nome "server.js" com o seguinte código dentro dele:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;jsonServer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;json-server&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;jsonServer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;router&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;jsonServer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;router&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;NomeDaSuaDb.json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//👈🏽&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;middlewares&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;jsonServer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;port&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;middlewares&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;router&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;port&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2- Adicione na linha 3 o nome da sua database e pronto❗ Sua API com JSON Server está finalizada, e pronta para fazer o deploy 🙌🎆&lt;/p&gt;

&lt;h3&gt;
  
  
  🏠 Deploy no Heroku
&lt;/h3&gt;

&lt;p&gt;Você pode fazer o deploy da sua API em qualquer serviço de hospedagem da sua preferência. Recomendo pessoalmente o Heroku pois sempre utilizo a plataforma para hospedar minhas próprias API's.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No Heroku, há os &lt;em&gt;"dynos"&lt;/em&gt;, que sãos unidades que representam o quanto sua aplicação pode ficar disponível/online.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tanto na versão gratuita quanto paga, nossa API hiberna em horários convenientes para utilizar menos dynos. Caso você necessite de acesso &lt;strong&gt;EXTREMO&lt;/strong&gt; e não se preocupe com &lt;strong&gt;todos os seus dynos serem gastos rapidamente&lt;/strong&gt;, você pode impedir esse processo de hibernação.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Para fazer isso gratuitamente, entre no site da &lt;a href="https://kaffeine.herokuapp.com" rel="noopener noreferrer"&gt;Kaffeine&lt;/a&gt;, e insira o nome da sua aplicação no Heroku (O mesmo nome que aparece lá na sua &lt;a href="https://dashboard.heroku.com/apps" rel="noopener noreferrer"&gt;dashboard&lt;/a&gt; 👈🏽&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Clique no botão "Give my app a caffeine shot every 30 minutes" e PRONTO!! &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sua API ou aplicação não entrará mais em hibernação 😉&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>tutorial</category>
      <category>beginners</category>
      <category>json</category>
      <category>api</category>
    </item>
    <item>
      <title>Format C/Cpp files automatically on VS Code</title>
      <dc:creator>Thiago Silva Lopes</dc:creator>
      <pubDate>Sun, 10 Apr 2022 20:01:51 +0000</pubDate>
      <link>https://forem.com/thiagoow/format-ccpp-files-automatically-on-vs-code-ad7</link>
      <guid>https://forem.com/thiagoow/format-ccpp-files-automatically-on-vs-code-ad7</guid>
      <description>&lt;p&gt;The year is 2022, you're already know some things about programming and your college is teaching you logics with Cpp.&lt;/p&gt;

&lt;p&gt;The recommended IDE that they show you is something too to even bother to look, so okay, let's code this on VS Code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftwxlvixc93j8vmm4zp53.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftwxlvixc93j8vmm4zp53.gif" alt="Cat Typing GIF" width="500" height="343"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  ⚠ The problem
&lt;/h2&gt;

&lt;p&gt;You got everything set up and looking great with the compiler and VS extensions, but as you begin to code you notice that your code isn't formatting itself.&lt;/p&gt;

&lt;p&gt;You already got Prettier + ESLint working fine, but they don't offer support C/Cpp. &lt;strong&gt;So, how do i format only C/Cpp code with another formatter?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ✔ The solution
&lt;/h2&gt;

&lt;p&gt;Searching around the web i found out that the VS Code C/Cpp support extension already comes with &lt;strong&gt;clang-format&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That being said, we doesn't need to install any other thing than the spoken extension, &lt;strong&gt;to make our code indent automatically and customize how that formatting is gonna be.&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your VS Code and press &lt;code&gt;Ctrl + Shift + P&lt;/code&gt; to open the Command Pallete;&lt;/li&gt;
&lt;li&gt;Type 'JSON' and click on the 'Open Settings (JSON):
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5sbiim6fkuak1r1own8z.png" alt="VS Code Options Screenshot" width="597" height="137"&gt;
&lt;/li&gt;
&lt;li&gt;With the VS Code &lt;code&gt;settings.json&lt;/code&gt; open, we can make clang-format as our default formatter &lt;strong&gt;(for C/Cpp language only)&lt;/strong&gt;, adding the following code:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[c]&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;editor.defaultFormatter&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ms-vscode.cpptools&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="c1"&gt;//☝🏼 Select the MS extension as defaultFormatter&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[cpp]&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;editor.defaultFormatter&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ms-vscode.cpptools&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🥳&lt;em&gt;That's it! Your code will now auto format!&lt;/em&gt; 🎆🙌 &lt;br&gt;
But... How i customize this? 🤔&lt;/p&gt;
&lt;h2&gt;
  
  
  🎨 Custom your formatting
&lt;/h2&gt;

&lt;p&gt;Clang-format has a lot of options for your format your code the way your prefer more. You can check their documentation in this 👉🏽 &lt;a href="https://releases.llvm.org/12.0.0/tools/clang/docs/ClangFormatStyleOptions.html" rel="noopener noreferrer"&gt;link&lt;/a&gt; to see all the options you have.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to set this options on your VS Code:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Follow the same steps as above to open your &lt;code&gt;settings.json&lt;/code&gt;,
and put your options inside this code:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;C_Cpp.clang_format_fallbackStyle&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;{optionOne: true, optionTwo: 2 }&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;All the options needs to be inside this quotes, so &lt;strong&gt;you can't format this object in more lines than 1&lt;/strong&gt;. Even if it is an object.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This are the configs that I find the best for my use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;C_Cpp.clang_format_fallbackStyle&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;{ BasedOnStyle: Google, IndentWidth: 3, IncludeBlocks: Merge, IndentGotoLabels: true, KeepEmptyLinesAtTheStartOfBlocks: true}&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;If you wanna check the settings i use on my VS Code &amp;amp; Terminal, you can check my 👉🏽 &lt;a href="https://github.com/Thiagoow/My-Settings" rel="noopener noreferrer"&gt;repos&lt;/a&gt; on GitHub! 😊&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  👨🏻‍💻 Special thanks &amp;amp; credits to:
&lt;/h2&gt;

&lt;p&gt;Other devs on Stack Overflow who faced the same problem &amp;amp;/or helped to find solutions. ✌🏼&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>tutorial</category>
      <category>cpp</category>
      <category>settings</category>
    </item>
    <item>
      <title>How '@use' like '@import' (Sass new syntax) 🤔</title>
      <dc:creator>Thiago Silva Lopes</dc:creator>
      <pubDate>Sun, 10 Apr 2022 17:36:00 +0000</pubDate>
      <link>https://forem.com/thiagoow/how-use-like-import-sass-new-syntax-omn</link>
      <guid>https://forem.com/thiagoow/how-use-like-import-sass-new-syntax-omn</guid>
      <description>&lt;p&gt;So, Sass has a new set of rules that come to replace the old '&lt;em&gt;&lt;a class="mentioned-user" href="https://dev.to/import"&gt;@import&lt;/a&gt;&lt;/em&gt;' syntax. &lt;strong&gt;But&lt;/strong&gt;, the new '&lt;em&gt;&lt;a class="mentioned-user" href="https://dev.to/use"&gt;@use&lt;/a&gt;&lt;/em&gt;' and '&lt;em&gt;@forward&lt;/em&gt;' rules isn't just replacing and working exactly has their old ones.&lt;/p&gt;



&lt;h3&gt;
  
  
  ⚠ The problem
&lt;/h3&gt;

&lt;p&gt;If you are trying to import a '&lt;em&gt;variables.scss&lt;/em&gt;' to other Sass file and just replace your '&lt;em&gt;&lt;a class="mentioned-user" href="https://dev.to/import"&gt;@import&lt;/a&gt;&lt;/em&gt;' with a '&lt;em&gt;&lt;a class="mentioned-user" href="https://dev.to/use"&gt;@use&lt;/a&gt;&lt;/em&gt;', you will find that your variables &lt;strong&gt;still aren't reachable&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyuu0i27w3ba8v7zxtmnd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyuu0i27w3ba8v7zxtmnd.png" alt="Code without *" width="306" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe8pfaz9178rk8gc1zo2c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe8pfaz9178rk8gc1zo2c.png" alt="Code error" width="574" height="187"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h3&gt;
  
  
  ❓ Why this happens?
&lt;/h3&gt;

&lt;p&gt;The new rules are here to fix a lot of bugs from conflict between files that may happen sometimes with the variables import. &lt;/p&gt;

&lt;p&gt;The new syntax makes that you only import the variables of a file using some &lt;em&gt;modular stylesheet&lt;/em&gt; way. And this is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Adding the name of the file you are importing in front of &lt;em&gt;each variable&lt;/em&gt; you use:&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9d051rl8nae3a5h9epl8.png" alt="Styling with name of file" width="317" height="133"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;br&gt;
For me and a lot of people who been using Sass, one of the biggest advantages of this CSS preprocessor, is that syntax is almost the same as plain CSS, but with super powers. &lt;/p&gt;

&lt;p&gt;The old way of styling your files was that (beside the $ instead @), we could use the same way of import vars between files on CSS. This new way makes that one of the biggest advantages of Sass syntax, as deprecated.&lt;/p&gt;



&lt;h3&gt;
  
  
  ✔ How to fix this?
&lt;/h3&gt;

&lt;p&gt;Instead of adding the name of your Sass variables file in front of &lt;em&gt;every single vars in your file&lt;/em&gt;, you just need to add &lt;strong&gt;👉🏽 'as *'&lt;/strong&gt; in the end of your import:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;@use "../SassFolder/SassFile" as *;&lt;/code&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fusj8u93hpj7yzwd47wlq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fusj8u93hpj7yzwd47wlq.png" alt="Styling with as *" width="452" height="131"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;And yeah, just with 3 characters, you can use the new '&lt;a class="mentioned-user" href="https://dev.to/use"&gt;@use&lt;/a&gt;' syntax without any more pain.&lt;/em&gt;&lt;/p&gt;



&lt;h3&gt;
  
  
  👨🏻‍💻📚 Special thanks &amp;amp; credits to:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UCn07jnZoflIMSdGWUkRqzsQ" rel="noopener noreferrer"&gt;Pixel Rocket&lt;/a&gt; and his awesome &lt;a href="https://youtu.be/BEdCOvJ5RY4" rel="noopener noreferrer"&gt;Sass Crash Course&lt;/a&gt;, that helped a lot of solving this headache; &lt;/p&gt;

&lt;p&gt;Other devs on Stack Overflow who faced the same problem &amp;amp;/or helped to find solutions. ✌🏼&lt;/p&gt;

</description>
      <category>sass</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>syntax</category>
    </item>
  </channel>
</rss>
