A simple command line application in order to create new Code workspaces.

Related tags

CLI mkcws
Overview

mkcws

Summary

A simple command line application in order to create new Code workspaces.

License

This project's license is GPL 2. The whole license text can be found in LICENSE in the main directory of this repository. The brief version of the license is as follows:

Copyright (C) 2021 Kevin Matthes

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Introduction

Many IDEs (Integrated Development Environments) offer the possibility to create projects in order to group project related files. The same goes for compilations of the VS Code source code, such as VS Code and VSCodium, for instance, which will be named "VSC-like IDEs" in the following. But often, the way of how a project is defined as one differs from IDE to IDE. Hence, people who are new to a certain IDE might wonder how this is processed in the concerning IDE.

For VSC-like IDEs, there are the *.code-workspace files which define a certain directory on the machine's file system to be a workspace for the IDE. This specification is made by using a JSON-like syntax. Hence, workspaces can not only be created from within the IDE during a session, but also before the first session in this workspace since the used format can be edited by hand and any arbitrary editor due to the fact that is just plain text.

This application, mkcws, is one possible solution in order to automate the process of workspace creation. It is designed to be a simple command line application which creates the workspace according to different given parameters which are as follows:

  • the used coding language
  • the intended project name
  • the path of the directory with all related project files

The name mkcws is an abbreviation of "make a new Code workspace" and is inspired by the UNIX commands for creation, such as the one for directories: mkdir.

Build process

Building this project is very simple since it does not depend on anything except the C standard library. This project can be build by executing the following command in a terminal:

make

Other compilers than gcc are possible, as well, if desired. Therefore, the variable CC in makefile should be adjusted.

The command above will build the application and test it with valgrind right after the compilation finished. In order to ensure this test to succeed, users should make sure that they have a valid valgrind installation. In general, users should take a look at the variable settings of the build routine before building the application in order to avoid unnecessary errors due to incorrect settings regarding their system configuration.

To build without any tests, run:

make mkcws

Usage

The usage of mkcws is very simple. Within a terminal, one just needs to call

mkcws 
    
     
     

     
    
   

in order to create a new Code workspace in the current working directory. The new workspace's name will be determined as follows:


   
    !
    
     .code-workspace

    
   

This procedure ensures the workspaces to be sorted by their main coding languages such that even after a long period of time during which nothing was edited, the project can still be easily identified. This style has proven quite intuitive and good usable, especially in the case that some projects might share their names but differ regarding their coding languages.

At the moment, the application accepts all parameters just statically in a predefined order, such that neither the count of the parameters nor their order may be altered without unexpected results. The mandatory order of the arguments is as follows:

  1. main coding language
  2. project name
  3. path to the project's root directory

In case that less or more than three parameters are given to the application, it will show an error message and list all given parameters.

In case that the parameter's order was mixed up for some reasons, the application will proceed as instructed with the result that the final workspace will not meet the actual expectations.

Owner
Kevin Matthes
Kevin Matthes
led is a line-oriented text editor in command line

led is a line-oriented text editor in command line. This editor is similar to the standard program on unix systems - GNU ed. But i'm not going to make an exact clone of that program, it's just a pet project.

Artem Mironov 9 Jun 14, 2022
A basic to-do list application for the command line.

A basic command-line todo list, allowing you to keep track of tasks right in the terminal

Scott Hutchins 1 Oct 22, 2021
Skeleton of a C++ command line application

Here is an example of a command line C++ application. Anytime you want to start a new command line tool in C++, feel free to use this code as a skelet

Serge Vakulenko 2 Mar 27, 2022
A single header C++ library for parsing command line arguments and options with minimal amount of code

Quick Arg Parser Tired of unwieldy tools like getopt or argp? Quick Arg Parser is a single header C++ library for parsing command line arguments

null 44 Feb 21, 2022
null 76 Apr 18, 2022
A command-line tool to generate Linux manual pages from C source code.

mangen A command-line tool to generate Linux manual pages from C source code. Description mangen is, as said above, a program to generate Linux manual

null 2 Nov 15, 2021
nicegraf-shaderc is a command-line tool that transforms HLSL code into shaders for various graphics APIs.

User Manual Table of Contents Introduction Project Status Obtaining the Source Code and Building Running Defining Techniques Generated Header File Pip

nicebyte 88 Jun 20, 2022
A simple to use, composable, command line parser for C++ 11 and beyond

Clara v1.1.5 !! This repository is unmaintained. Go here for a fork that is somewhat maintained. !! A simple to use, composable, command line parser f

Catch Org 651 Jun 15, 2022
CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.

CLI11: Command line parser for C++11 What's new • Documentation • API Reference CLI11 is a command line parser for C++11 and beyond that provides a ri

null 2.1k Jun 24, 2022
A simple to use, composable, command line parser for C++ 11 and beyond

Lyra A simple to use, composing, header only, command line arguments parser for C++ 11 and beyond. Obtain License Standards Stats Tests License Distri

Build Frameworks Group 342 Jun 16, 2022
Simple command line tool that processes image files using the FidelityFX Super Resolution (FSR) or Contrast Adaptive Sharpening (CAS) shader systems.

Simple command line tool that processes image files using the FidelityFX Super Resolution (FSR) or Contrast Adaptive Sharpening (CAS) shader systems.

GPUOpen Effects 174 Jun 26, 2022
Simple, command line based player toolkit for the Ironsworn tabletop RPG

isscrolls - Command line based player toolkit for the Ironsworn tabletop RPG isscrolls is a simple toolkit for players of the Ironsworn tabletop RPG.

null 5 Jun 1, 2022
Simple command line utilities for extracting data from Fallout 4 and 76 files

fo76utils Simple command line utilities for extracting data from Fallout 4 and 76 files. baunpack - list the contents of, or extract from .BA2 archive

null 9 Jun 13, 2022
Simple Driver loading command-line utility.

lddrv Simple Driver loading command-line utility. Command Line Load a driver: "lddrv.exe -operation create -binpath C:\Dev\TestDriver.sys -svcname Tes

Josh S. 2 Dec 21, 2021
A library for interactive command line interfaces in modern C++

cli A cross-platform header only C++14 library for interactive command line interfaces (Cisco style) Features Header only Cross-platform (linux and wi

Daniele Pallastrelli 803 Jul 2, 2022
Lightweight C++ command line option parser

Release versions Note that master is generally a work in progress, and you probably want to use a tagged release version. Version 3 breaking changes I

null 3.1k Jun 25, 2022
CLIp is a clipboard emulator for a command line interface written in 100% standard C only. Pipe to it to copy, pipe from it to paste.

CLIp v2 About CLIp is a powerful yet easy to use and minimal clipboard manager for a command line environment, with no dependencies or bloat. Usage Sy

A.P. Jo. 12 Sep 18, 2021
pbr2gltf2 is a command line tool for converting PBR images to a glTF 2.0 material.

pbr2gltf2 is a command line tool for converting PBR images to a glTF 2.0 material. The tool is detecting depending on the filename, which PBR information is stored. It swizzles the images and does reassign the channels to a glTF 2.0 image. The tool stores the images plus a minimal, valid glTF 2.0 file containing the required material, textures and images.

UX3D GmbH 22 Jan 11, 2022
A command-line tool to display colorful distro information.

sjfetch A command-line tool to display colorful distro information.

Fikret Musk 6 Apr 6, 2022