<?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>DEV Community: Insidious</title>
    <description>The latest articles on DEV Community by Insidious (@insidiousthedev).</description>
    <link>https://dev.to/insidiousthedev</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%2F595045%2F4346238f-7e5a-4b14-9c60-837358cab092.jpg</url>
      <title>DEV Community: Insidious</title>
      <link>https://dev.to/insidiousthedev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/insidiousthedev"/>
    <language>en</language>
    <item>
      <title>Awesome themes for VSCode</title>
      <dc:creator>Insidious</dc:creator>
      <pubDate>Thu, 23 Sep 2021 06:55:40 +0000</pubDate>
      <link>https://dev.to/insidiousthedev/awesome-themes-for-vscode-238j</link>
      <guid>https://dev.to/insidiousthedev/awesome-themes-for-vscode-238j</guid>
      <description>&lt;h4&gt;
  
  
  Hey everyone!
&lt;/h4&gt;

&lt;p&gt;In this post, I'll be discussing about some awesome themes for VSCode.&lt;/p&gt;

&lt;p&gt;Oh and, I've organized these into different sections:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dark&lt;/li&gt;
&lt;li&gt;Light &lt;/li&gt;
&lt;li&gt;Colorful&lt;/li&gt;
&lt;li&gt;Icons&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So let's get started!!!&lt;/p&gt;

&lt;h2&gt;
  
  
  Dark Themes
&lt;/h2&gt;

&lt;p&gt;A lot of developers, including me, like darker environments. Here I present you with some really great dark themes.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. One Dark Pro
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=zhuangtongfa.Material-theme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2Fbinaryify%2Fonedark-pro%2Fscreenshots%2Fterminal.png" alt="one-dark-pro-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=zhuangtongfa.Material-theme" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. One Monokai
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=azemoh.one-monokai" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fazemoh%2Fvscode-one-monokai%2Fraw%2Fmaster%2Fscreenshot-v0.2.0.png" alt="one-monokai-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=azemoh.one-monokai" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Dracula Official
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=dracula-theme.theme-dracula" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fdracula%2Fvisual-studio-code%2Fmaster%2Fscreenshot.png" alt="dracula-official-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=dracula-theme.theme-dracula" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Andromeda
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=EliverLara.andromeda" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FEliverLara%2FAndromeda%2Fraw%2Fmaster%2Fimages%2Fandromeda.png" alt="andromeda-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=EliverLara.andromeda" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Cobalt2 Theme Official
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=wesbos.theme-cobalt2" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fwesbos%2Fcobalt2-vscode%2Fcobalt2-updates%2Fimages%2Fss.png" alt="cobalt2-theme-official-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=wesbos.theme-cobalt2" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Light Themes
&lt;/h2&gt;

&lt;p&gt;Here are some light themes for those wonderful eyes which can survive these flashbang-like themes.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Atom One Light Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=akamud.vscode-theme-onelight" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fakamud%2Fvscode-theme-onelight%2Fmaster%2Fscreenshots%2Fpreview.png" alt="atom-one-light-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=akamud.vscode-theme-onelight" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Github Light Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=Hyzeta.vscode-theme-github-light" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fchuling%2Fvscode-theme-github-light%2Fraw%2Fmaster%2Fpreview%2F0.png" alt="github-light-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=Hyzeta.vscode-theme-github-light" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Bluloco Light Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=uloco.theme-bluloco-light" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuloco%2Ftheme-bluloco-light%2Fraw%2FHEAD%2Fscreenshots%2Fts.png" alt="bluloco-light-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=uloco.theme-bluloco-light" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Ysgrifennwr Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=xaver.theme-ysgrifennwr" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fxaverh%2Ftheme-ysgrifennwr%2Fraw%2Fmaster%2Fscreenshot.png" alt="ysgrifennwr-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=xaver.theme-ysgrifennwr" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. NotepadPlusPlus Remixed Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=sh4dow.theme-notepadplusplusremixed" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fs-h-a-d-o-w%2FNotepadPlusPlus-Remixed-Theme%2Fmaster%2Fscreenshot.png" alt="notepadplusplus-remixed-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=sh4dow.theme-notepadplusplusremixed" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Colorful Themes
&lt;/h2&gt;

&lt;p&gt;Tired of monochromatic themes and simple color palettes? Try these colorful themes.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Shades of Purple
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=ahmadawais.shades-of-purple" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fahmadawais%2Fshades-of-purple-vscode%2Fmaster%2Fimages%2FJavaScript.png" alt="shades-of-purple-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=ahmadawais.shades-of-purple" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Cyberpunk
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=max-SS.cyberpunk" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fprometheux-ar%2Fcyberpunk%2Fraw%2FHEAD%2Fassets%2Fpreview-umbra.png%3Fraw%3Dtrue" alt="cyberpunk-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=max-SS.cyberpunk" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Qiita
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=Increments.qiita" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F6598%2Fe054a4bb-cea1-8fc9-e193-fbb8376ed93d.png" alt="qiita-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=Increments.qiita" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. LaserWave
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=jaredkent.laserwave" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FJaredk3nt%2Flaserwave%2Fraw%2FHEAD%2Fscreenshot.png" alt="laserwave-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=jaredkent.laserwave" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. SynthWave '84
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=RobbOwen.synthwave-vscode" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Frobb0wen%2Fsynthwave-vscode%2Fraw%2Fmaster%2Ftheme.jpg" alt="synthwave-84-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=RobbOwen.synthwave-vscode" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Icon Themes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Material Icon Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FPKief%2Fvscode-material-icon-theme%2Fmain%2Fimages%2FfileIcons.png" alt="material-icon-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme" rel="noopener noreferrer"&gt;Theme on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. file-icons
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=file-icons.file-icons" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FDanBrooker%2Ffile-icons%2F6714706f268e257100e03c9eb52819cb97ad570b%2Fpreview.png" alt="file-icons-theme-example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=file-icons.file-icons" rel="noopener noreferrer"&gt;Theme on VSCode marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  That should end the list.
&lt;/h4&gt;

&lt;p&gt;I spent a long time testing out a lot of themes, and these were my favorite ones. If you like any themes not mentioned in this post, feel free to mention it in the comments.&lt;/p&gt;

&lt;p&gt;I can finally sleep in peace, cya.&lt;/p&gt;

&lt;h3&gt;
  
  
  Socials
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://discord.com/users/853865815080960011" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/nightmxrethedev" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://instagram.com/insidiousthedev" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Peace.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>themes</category>
    </item>
    <item>
      <title>Make a simple text editor using Python</title>
      <dc:creator>Insidious</dc:creator>
      <pubDate>Wed, 22 Sep 2021 08:24:17 +0000</pubDate>
      <link>https://dev.to/insidiousthedev/make-a-simple-text-editor-using-python-31bd</link>
      <guid>https://dev.to/insidiousthedev/make-a-simple-text-editor-using-python-31bd</guid>
      <description>&lt;h2&gt;
  
  
  Hey everyone!
&lt;/h2&gt;

&lt;p&gt;Today we'll be making a simple text editor using Python and Tkinter.&lt;/p&gt;

&lt;h4&gt;
  
  
  What is tkinter?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;It is a standard Python interface to the Tk GUI toolkit shipped with Python.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  How do I know if I have installed tkinter?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Most probably, you would have it installed. Try running &lt;code&gt;python -m tkinter&lt;/code&gt; in your console. If it doesn't give an error, it means you have tkinter installed and ready to use!&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  I don't have tkinter installed, what should I do?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Just make sure you have Python and pip working, then run &lt;code&gt;pip install tk&lt;/code&gt; in the console.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Prerequisites
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.9.x&lt;/li&gt;
&lt;li&gt;Code editor (VSCode, PyCharm, etc)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now that that's out of the way, let's get started!!!&lt;/p&gt;

&lt;h4&gt;
  
  
  The tutorial starts here...
&lt;/h4&gt;

&lt;p&gt;First, we'll make a file structure sort of thing.&lt;br&gt;
We'll need these files (they can be in the root directory):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;main.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;file_menu.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;edit_menu.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;format_menu.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;help_menu.py&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  main.py
&lt;/h3&gt;

&lt;p&gt;For the &lt;code&gt;main.py&lt;/code&gt; file, we'll start by importing the tkinter library and the menu files we made just now:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# import statements
from tkinter import *
from tkinter.filedialog import *
from tkinter.messagebox import *
from tkinter.font import Font
from tkinter.scrolledtext import *
import file_menu
import edit_menu
import format_menu
import help_menu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, we'll make a tkinter window like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# creating a tkinter window
root = Tk()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, we'll give our text editor some dimensions and a title like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# gives the window a title and dimensions
root.title("TextEditor-newfile")
root.geometry("300x250+300+300")
root.minsize(width=400, height=400)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, we'll add this code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# i don't really know how to explain what this code does, but yeah it's important
text = ScrolledText(root, state='normal', height=400, width=400, wrap='word', pady=2, padx=3, undo=True)
text.pack(fill=Y, expand=1)
text.focus_set()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, we'll make a &lt;code&gt;menubar&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# creating a menubar
menubar = Menu(root)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, we'll add our menus to the menubar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# adding our menus to the menubar
file_menu.main(root, text, menubar)
edit_menu.main(root, text, menubar)
format_menu.main(root, text, menubar)
help_menu.main(root, text, menubar)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, we'll add this code so this editor actually functions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# running the whole program
root.mainloop()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's move on to our menu files, shall we?&lt;/p&gt;

&lt;h3&gt;
  
  
  file_menu.py
&lt;/h3&gt;

&lt;p&gt;First, we'll import stuff:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# import statements
from tkinter import *
from tkinter.filedialog import *
from tkinter.messagebox import *
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, we'll make a class &lt;code&gt;File&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# creating File
class File():
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then we'll add all the functions we need to our &lt;code&gt;File&lt;/code&gt; class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    def newFile(self):
        self.filename = "Untitled"
        self.text.delete(0.0, END)

    def saveFile(self):
        try:
            t = self.text.get(0.0, END)
            f = open(self.filename, 'w')
            f.write(t)
            f.close()
        except:
            self.saveAs()

    def saveAs(self):
        f = asksaveasfile(mode='w', defaultextension='.txt')
        t = self.text.get(0.0, END)
        try:
            f.write(t.rstrip())
        except:
            showerror(title="Oops!", message="Unable to save file...")

    def openFile(self):
        f = askopenfile(mode='r')
        self.filename = f.name
        t = f.read()
        self.text.delete(0.0, END)
        self.text.insert(0.0, t)

    def quit(self):
        entry = askyesno(title="Quit", message="Are you sure you want to quit?")
        if entry == True:
            self.root.destroy()

    def __init__(self, text, root):
        self.filename = None
        self.text = text
        self.root = root
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code, we've added some functions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New File&lt;/li&gt;
&lt;li&gt;Save File&lt;/li&gt;
&lt;li&gt;Save File As&lt;/li&gt;
&lt;li&gt;Open File&lt;/li&gt;
&lt;li&gt;Quit Editor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then, we'll make a main function (note that this function should not be under the &lt;code&gt;File&lt;/code&gt; class):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def main(root, text, menubar):
    filemenu = Menu(menubar)
    objFile = File(text, root)
    filemenu.add_command(label="New", command=objFile.newFile)
    filemenu.add_command(label="Open", command=objFile.openFile)
    filemenu.add_command(label="Save", command=objFile.saveFile)
    filemenu.add_command(label="Save As...", command=objFile.saveAs)
    filemenu.add_separator()
    filemenu.add_command(label="Quit", command=objFile.quit)
    menubar.add_cascade(label="File", menu=filemenu)
    root.config(menu=menubar)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code, we made a &lt;code&gt;main&lt;/code&gt; function which basically executes all functions under the &lt;code&gt;File&lt;/code&gt; class.&lt;/p&gt;

&lt;p&gt;Finally, we add some error-handling sort of thingy:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if __name__ == "__main__":
    print("Please run 'main.py'")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  edit_menu.py
&lt;/h3&gt;

&lt;p&gt;We'll start by importing stuff:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# import statements
from tkinter import *
from tkinter.simpledialog import *
from tkinter.filedialog import *
from tkinter.messagebox import *
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, we'll make a class &lt;code&gt;Edit&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# creating Edit
class Edit():
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then we'll add all the necessary functions under this &lt;code&gt;Edit&lt;/code&gt; class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    def popup(self, event):
        self.rightClick.post(event.x_root, event.y_root)

    def copy(self, *args):
        sel = self.text.selection_get()
        self.clipboard = sel

    def cut(self, *args):
        sel = self.text.selection_get()
        self.clipboard = sel
        self.text.delete(SEL_FIRST, SEL_LAST)

    def paste(self, *args):
        self.text.insert(INSERT, self.clipboard)

    def selectAll(self, *args):
        self.text.tag_add(SEL, "1.0", END)
        self.text.mark_set(0.0, END)
        self.text.see(INSERT)

    def undo(self, *args):
        self.text.edit_undo()

    def redo(self, *args):
        self.text.edit_redo()

    def find(self, *args):
        self.text.tag_remove('found', '1.0', END)
        target = askstring('Find', 'Search String:')

        if target:
            idx = '1.0'
            while 1:
                idx = self.text.search(target, idx, nocase=1, stopindex=END)
                if not idx: break
                lastidx = '%s+%dc' % (idx, len(target))
                self.text.tag_add('found', idx, lastidx)
                idx = lastidx
            self.text.tag_config('found', foreground='white', background='blue')

    def __init__(self, text, root):
        self.clipboard = None
        self.text = text
        self.rightClick = Menu(root)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code, we make some functions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copy&lt;/li&gt;
&lt;li&gt;Cut&lt;/li&gt;
&lt;li&gt;Paste&lt;/li&gt;
&lt;li&gt;Select All&lt;/li&gt;
&lt;li&gt;Undo&lt;/li&gt;
&lt;li&gt;Redo&lt;/li&gt;
&lt;li&gt;Find&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then, we make a &lt;code&gt;main&lt;/code&gt; function outside the &lt;code&gt;Edit&lt;/code&gt; class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def main(root, text, menubar):

    objEdit = Edit(text, root)

    editmenu = Menu(menubar)
    editmenu.add_command(label="Copy", command=objEdit.copy, accelerator="Ctrl+C")
    editmenu.add_command(label="Cut", command=objEdit.cut, accelerator="Ctrl+X")
    editmenu.add_command(label="Paste", command=objEdit.paste, accelerator="Ctrl+V")
    editmenu.add_command(label="Undo", command=objEdit.undo, accelerator="Ctrl+Z")
    editmenu.add_command(label="Redo", command=objEdit.redo, accelerator="Ctrl+Y")
    editmenu.add_command(label="Find", command=objEdit.find, accelerator="Ctrl+F")
    editmenu.add_separator()
    editmenu.add_command(label="Select All", command=objEdit.selectAll, accelerator="Ctrl+A")
    menubar.add_cascade(label="Edit", menu=editmenu)

    root.bind_all("&amp;lt;Control-z&amp;gt;", objEdit.undo)
    root.bind_all("&amp;lt;Control-y&amp;gt;", objEdit.redo)
    root.bind_all("&amp;lt;Control-f&amp;gt;", objEdit.find)
    root.bind_all("Control-a", objEdit.selectAll)

    objEdit.rightClick.add_command(label="Copy", command=objEdit.copy)
    objEdit.rightClick.add_command(label="Cut", command=objEdit.cut)
    objEdit.rightClick.add_command(label="Paste", command=objEdit.paste)
    objEdit.rightClick.add_separator()
    objEdit.rightClick.add_command(label="Select All", command=objEdit.selectAll)
    objEdit.rightClick.bind("&amp;lt;Control-q&amp;gt;", objEdit.selectAll)

    text.bind("&amp;lt;Button-3&amp;gt;", objEdit.popup)

    root.config(menu=menubar)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, we'll do some error-handling thingy:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if __name__ == "__main__":
    print("Please run 'main.py'")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  format_menu.py
&lt;/h3&gt;

&lt;p&gt;We'll start by importing stuff:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# import statements
from tkinter import *
from tkinter.colorchooser import askcolor
from tkinter.font import Font, families
from tkinter.scrolledtext import *
import time
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, we make a class &lt;code&gt;Format&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Format():
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, we add the necessary functions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    def __init__(self, text):
        self.text = text

    def changeBg(self):
        (triple, hexstr) = askcolor()
        if hexstr:
            self.text.config(bg=hexstr)

    def changeFg(self):
        (triple, hexstr) = askcolor()
        if hexstr:
            self.text.config(fg=hexstr)

    def bold(self, *args):  # Works only if text is selected
        try:
            current_tags = self.text.tag_names("sel.first")
            if "bold" in current_tags:
                self.text.tag_remove("bold", "sel.first", "sel.last")
            else:
                self.text.tag_add("bold", "sel.first", "sel.last")
                bold_font = Font(self.text, self.text.cget("font"))
                bold_font.configure(weight="bold")
                self.text.tag_configure("bold", font=bold_font)
        except:
            pass

    def italic(self, *args):  # Works only if text is selected
        try:
            current_tags = self.text.tag_names("sel.first")
            if "italic" in current_tags:
                self.text.tag_remove("italic", "sel.first", "sel.last")
            else:
                self.text.tag_add("italic", "sel.first", "sel.last")
                italic_font = Font(self.text, self.text.cget("font"))
                italic_font.configure(slant="italic")
                self.text.tag_configure("italic", font=italic_font)
        except:
            pass

    def underline(self, *args):  # Works only if text is selected
        try:
            current_tags = self.text.tag_names("sel.first")
            if "underline" in current_tags:
                self.text.tag_remove("underline", "sel.first", "sel.last")
            else:
                self.text.tag_add("underline", "sel.first", "sel.last")
                underline_font = Font(self.text, self.text.cget("font"))
                underline_font.configure(underline=1)
                self.text.tag_configure("underline", font=underline_font)
        except:
            pass

    def overstrike(self, *args):  # Works only if text is selected
        try:
            current_tags = self.text.tag_names("sel.first")
            if "overstrike" in current_tags:
                self.text.tag_remove("overstrike", "sel.first", "sel.last")
            else:
                self.text.tag_add("overstrike", "sel.first", "sel.last")
                overstrike_font = Font(self.text, self.text.cget("font"))
                overstrike_font.configure(overstrike=1)
                self.text.tag_configure("overstrike", font=overstrike_font)
        except:
            pass

    def addDate(self):
        full_date = time.localtime()
        day = str(full_date.tm_mday)
        month = str(full_date.tm_mon)
        year = str(full_date.tm_year)
        date = day + '/' + month + '/' + year
        self.text.insert(INSERT, date, "a")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code, we added some functions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Change Background&lt;/li&gt;
&lt;li&gt;Change Font Group&lt;/li&gt;
&lt;li&gt;Bold Text&lt;/li&gt;
&lt;li&gt;Italic Text&lt;/li&gt;
&lt;li&gt;Underline Text&lt;/li&gt;
&lt;li&gt;Over Strike Text&lt;/li&gt;
&lt;li&gt;Add Date&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then, we make a &lt;code&gt;main&lt;/code&gt; function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def main(root, text, menubar):
    objFormat = Format(text)

    fontoptions = families(root)
    font = Font(family="Arial", size=10)
    text.configure(font=font)

    formatMenu = Menu(menubar)

    fsubmenu = Menu(formatMenu, tearoff=0)
    ssubmenu = Menu(formatMenu, tearoff=0)

    for option in fontoptions:
        fsubmenu.add_command(label=option, command=lambda option=option: font.configure(family=option))
    for value in range(1, 31):
        ssubmenu.add_command(label=str(value), command=lambda value=value: font.configure(size=value))

    formatMenu.add_command(label="Change Background", command=objFormat.changeBg)
    formatMenu.add_command(label="Change Font Color", command=objFormat.changeFg)
    formatMenu.add_cascade(label="Font", underline=0, menu=fsubmenu)
    formatMenu.add_cascade(label="Size", underline=0, menu=ssubmenu)
    formatMenu.add_command(label="Bold", command=objFormat.bold, accelerator="Ctrl+B")
    formatMenu.add_command(label="Italic", command=objFormat.italic, accelerator="Ctrl+I")
    formatMenu.add_command(label="Underline", command=objFormat.underline, accelerator="Ctrl+U")
    formatMenu.add_command(label="Overstrike", command=objFormat.overstrike, accelerator="Ctrl+T")
    formatMenu.add_command(label="Add Date", command=objFormat.addDate)
    menubar.add_cascade(label="Format", menu=formatMenu)

    root.bind_all("&amp;lt;Control-b&amp;gt;", objFormat.bold)
    root.bind_all("&amp;lt;Control-i&amp;gt;", objFormat.italic)
    root.bind_all("&amp;lt;Control-u&amp;gt;", objFormat.underline)
    root.bind_all("&amp;lt;Control-T&amp;gt;", objFormat.overstrike)

    root.grid_columnconfigure(0, weight=1)
    root.resizable(True, True)

    root.config(menu=menubar)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, we add some error-handling stuff:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if __name__ == "__main":
    print("Please run 'main.py'")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  help_menu.py
&lt;/h3&gt;

&lt;p&gt;We'll start by importing stuff&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# import statements
from tkinter import *
from tkinter.messagebox import *
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, we'll make a &lt;code&gt;Help&lt;/code&gt; class and add an &lt;code&gt;About&lt;/code&gt; function to it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Help():
    def about(root):
        showinfo(title="About", message="Hello, this is a text editor made by Insidious using Python")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We then make a &lt;code&gt;main&lt;/code&gt; function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def main(root, text, menubar):

    help = Help()

    helpMenu = Menu(menubar)
    helpMenu.add_command(label="About", command=help.about)
    menubar.add_cascade(label="Help", menu=helpMenu)

    root.config(menu=menubar)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, we add some error-handling sort of thing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if __name__ == "__main":
    print("Please run 'main.py'")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;And that should be it!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/nightmxrethedev/textEditorPy"&gt;Project on GitHub&lt;/a&gt;&lt;/p&gt;



&lt;h4&gt;
  
  
  Thanks for reading this post till the end. Hopefully it helped you!!!
&lt;/h4&gt;

&lt;p&gt;If there is anything missing, or I did something wrong, kindly point it out in the comments :D&lt;/p&gt;

&lt;h3&gt;
  
  
  Socials
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://discord.com/users/853865815080960011"&gt;Discord&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/nightmxrethedev"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://instagram.com/insidiousthedev"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks!!!&lt;/p&gt;

</description>
      <category>python</category>
      <category>tutorial</category>
      <category>tkinter</category>
    </item>
    <item>
      <title>Great VSCode extensions for JS Developers</title>
      <dc:creator>Insidious</dc:creator>
      <pubDate>Tue, 21 Sep 2021 06:27:36 +0000</pubDate>
      <link>https://dev.to/insidiousthedev/great-vscode-extensions-for-js-developers-5fj5</link>
      <guid>https://dev.to/insidiousthedev/great-vscode-extensions-for-js-developers-5fj5</guid>
      <description>&lt;h3&gt;
  
  
  Hey everyone, welcome to my first post here on DEV Community!
&lt;/h3&gt;

&lt;p&gt;In this post I will be talking about some great VSCode extensions for JavaScript Developers. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; This list does not include extensions meant only for a single framework/library.&lt;/p&gt;

&lt;p&gt;So let's get started!!!&lt;/p&gt;

&lt;h3&gt;
  
  
  Snippet extensions
&lt;/h3&gt;

&lt;p&gt;These extensions provide code snippets.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. JavaScript (ES6) code snippets
&lt;/h4&gt;

&lt;p&gt;This extension provides code snippets for the following languages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JavaScript (.js)&lt;/li&gt;
&lt;li&gt;JavaScript React (.jsx)&lt;/li&gt;
&lt;li&gt;TypeScript (.ts)&lt;/li&gt;
&lt;li&gt;TypeScript React (.tsx)&lt;/li&gt;
&lt;li&gt;HTML (.html)&lt;/li&gt;
&lt;li&gt;Vue (.vue)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The snippets provided by this extensions contain semicolons (&lt;code&gt;;&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=xabikos.JavaScriptSnippets"&gt;Extensions on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. JavaScript (ES6) code snippets in StandardJS style
&lt;/h4&gt;

&lt;p&gt;This extension provides the exact same snippets for the same languages as the extension mentioned above, the only difference being that the snippets do not contain semicolons (&lt;code&gt;;&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=jmsv.JavaScriptSnippetsStandard"&gt;Extension on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Syntax Highlighting Extensions
&lt;/h3&gt;

&lt;p&gt;These extensions highlight the code according to their syntax (does that make sense ^^').&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Bracket Pair Colorizer 2
&lt;/h4&gt;

&lt;p&gt;This extension highlights matching brackets with different colors, helping you identify which bracket belongs to which block.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer-2"&gt;Extension on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. DotENV
&lt;/h4&gt;

&lt;p&gt;This extension provides syntax highlighting for &lt;code&gt;.env&lt;/code&gt; files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=mikestead.dotenv"&gt;Extension on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Linter Extensions
&lt;/h3&gt;

&lt;p&gt;These extensions lint your code.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. ESLint
&lt;/h4&gt;

&lt;p&gt;This extension use the &lt;a href="https://eslint.org/"&gt;ESLint&lt;/a&gt; library to lint your code. It's also the most used linter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint"&gt;Extension on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. JSHint
&lt;/h4&gt;

&lt;p&gt;This linter uses the &lt;a href="https://jshint.com/install/"&gt;JSHint&lt;/a&gt; library to lint your code. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.jshint"&gt;Extension on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  NPM Extensions
&lt;/h3&gt;

&lt;p&gt;These extensions help with NPM (Node Package Manager).&lt;/p&gt;

&lt;h4&gt;
  
  
  1. npm
&lt;/h4&gt;

&lt;p&gt;This extension uses &lt;code&gt;package.json&lt;/code&gt; to validate installed packages. If anything is missing or versions are mismatched, the extension will provide you with clickable options to fix the issue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=eg2.vscode-npm-script"&gt;Extension on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. npm IntelliSense
&lt;/h4&gt;

&lt;p&gt;This extension provides auto-completing npm modules in import (&lt;code&gt;var&lt;/code&gt;, &lt;code&gt;let&lt;/code&gt;, &lt;code&gt;const&lt;/code&gt; and &lt;code&gt;import&lt;/code&gt;) statements.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=christian-kohler.npm-intellisense"&gt;Extension on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Other Useful Extensions
&lt;/h3&gt;

&lt;p&gt;These extensions don't fit under any heading in this list but they are quite useful.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Prettier
&lt;/h4&gt;

&lt;p&gt;This extension is an opinionated code formatter which formats JS, TS, and CSS code. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode"&gt;Extension on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Path IntelliSense
&lt;/h4&gt;

&lt;p&gt;This extension provides path completion for importing files. Works in HTML and CSS files as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=christian-kohler.path-intellisense"&gt;Extension on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Live Server
&lt;/h4&gt;

&lt;p&gt;This extension launches a local development server with live reloading for static as well as dynamic pages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer"&gt;Extension on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Thunder Client
&lt;/h4&gt;

&lt;p&gt;This extension is basically a Postman built into VSCode via an extension.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=rangav.vscode-thunder-client"&gt;Extension on VSCode Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Alright, that ends the list.
&lt;/h5&gt;

&lt;p&gt;Thanks for sparing time to read this whole post. Appreciated.&lt;/p&gt;

&lt;h4&gt;
  
  
  Socials
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://discord.com/users/853865815080960011"&gt;Discord&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/nightmxrethedev"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://instagram.com/insidiousthedev"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks!!!&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
