Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementação VisuAlg #1

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

[*]
indent_style = space
indent_size = 4
# Não colocar este aqui por enquanto.
# Isso quebra o importador.
# end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = false
8 changes: 8 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
node_modules
dist
.github
.git
.vscode
bin
coverage
testes
31 changes: 31 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"root": true,
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint", "prettier"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"prettier"
],
"rules": {
"prettier/prettier": "off",
"no-constant-condition": "off",
"no-useless-catch": "off",
"eslint-disable-next-line": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-unused-vars": "off",
"no-prototype-builtins": "off",
"@typescript-eslint/ban-types": "off",
"prefer-spread": "off",
"@typescript-eslint/adjacent-overload-signatures": "off",
"no-useless-escape": "off",
"no-case-declarations": "off",
"no-unsafe-finally": "off",
"no-fallthrough": "off",
"@typescript-eslint/no-this-alias": "off",
"@typescript-eslint/no-inferrable-types": "off",
"prefer-const": "off",
"no-var": "off"
}
}
25 changes: 25 additions & 0 deletions .github/workflows/principal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Commit e PR - Principal

on:
pull_request:
branches: [ principal ]

jobs:
testes-unitarios:
permissions:
checks: write
pull-requests: write
contents: write
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2-beta
with:
node-version: '16'
- name: NPM - Dependências
run: |
sudo npm install
- name: Testes unitários
run: |
sudo npm run testes-unitarios
135 changes: 8 additions & 127 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,130 +1,11 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
.idea

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
package-lock.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock
*.swp

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional stylelint cache
.stylelintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# vuepress v2.x temp and cache directory
.temp
.cache

# Docusaurus cache and generated files
.docusaurus

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
.antlr/
coverage/
dist/
docs/
node_modules/
8 changes: 8 additions & 0 deletions .gitpod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# This configuration file was automatically generated by Gitpod.
# Please adjust to your needs (see https://www.gitpod.io/docs/config-gitpod-file)
# and commit this file to your remote git repository to share the goodness with others.

tasks:
- init: yarn install
command: yarn lair

7 changes: 7 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"trailingComma": "es5",
"tabWidth": 4,
"semi": true,
"singleQuote": true,
"printWidth": 120
}
15 changes: 15 additions & 0 deletions .release-it.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"git": {
"commitMessage": "Lançamento da versão v${version}"
},
"github": {
"release": true
},
"npm": {
"publishPath": "./dist"
},
"hooks": {
"before:init": ["yarn empacotar"],
"after:bump": "copyfiles -V ./package.json ./dist"
}
}
5 changes: 5 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"recommendations": [
"firsttris.vscode-jest-runner"
]
}
54 changes: 54 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Visualg > Testes Interpretador",
"type": "node",
"request": "launch",
"runtimeArgs": [
"--inspect-brk",
"${workspaceRoot}/node_modules/jest/bin/jest.js",
"interpretador.test.ts",
"--runInBand"
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
{
"name": "Testes unitários - VisuAlg",
"type": "node",
"request": "launch",
"runtimeArgs": [
"--inspect-brk",
"${workspaceRoot}/node_modules/jest/bin/jest.js",
"--runInBand"
],
"skipFiles": [
"<node_internals>/**",
"node_modules/**"
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
{
"name": "Testes unitários - Tradutor Visualg para Delégua",
"type": "node",
"request": "launch",
"runtimeArgs": [
"--inspect-brk",
"${workspaceRoot}/node_modules/jest/bin/jest.js",
"tradutor-visualg.test.ts",
"--runInBand"
],
"skipFiles": [
"<node_internals>/**",
"node_modules/**"
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
]
}
25 changes: 25 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"liveServer.settings.port": 5501,
"workbench.colorCustomizations": {
"activityBar.activeBackground": "#1a1a1a",
"activityBar.background": "#1a1a1a",
"activityBar.foreground": "#e7e7e7",
"activityBar.inactiveForeground": "#e7e7e799",
"activityBarBadge.background": "#606020",
"activityBarBadge.foreground": "#e7e7e7",
"commandCenter.border": "#e7e7e799",
"sash.hoverBorder": "#1a1a1a",
"statusBar.background": "#000000",
"statusBar.foreground": "#e7e7e7",
"statusBarItem.hoverBackground": "#1a1a1a",
"statusBarItem.remoteBackground": "#000000",
"statusBarItem.remoteForeground": "#e7e7e7",
"titleBar.activeBackground": "#000000",
"titleBar.activeForeground": "#e7e7e7",
"titleBar.inactiveBackground": "#00000099",
"titleBar.inactiveForeground": "#e7e7e799"
},
"peacock.color": "#000000",
"compile-hero.disable-compile-files-on-did-save-code": true,
"nuxt.isNuxtApp": false
}
45 changes: 45 additions & 0 deletions CONTRIBUINDO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Contribuindo

Qualquer pessoa pode sugerir melhoramentos para a linguagem ou correções de bugs. Uma recomendação é abrir uma _issue_ no GitHub antes, para colher a opinião da comunidade e evitar rejeições de contribuições.

Seguimos o padrão do GitHub para modificações. Modificações são feitas por meio de _Pull Requests_, que nos mostram quais partes do código mudaram da versão atual para a proposta de modificação.

Havendo aprovação dos mantenedores do projeto, juntamos a modificação ao código atual (_merge_) e lançamos novas versões de tempos em tempos.

## Conhecimentos e Recomendações

O ambiente em que executamos é o Node.js que, basicamente, executa código JavaScript. Ou seja, se você tem conhecimento em JavaScript, é um primeiro passo para poder colaborar conosco. Por padrão, o Node.js vem com o NPM instalado, mas não o usamos. Usamos o Yarn, mais moderno e rápido. Você pode instalar o Yarn usando o comando abaixo (já tendo o NPM instalado):

```bash
npm install -g yarn
```

Feito isso, no diretório raiz do projeto, execute:

```bash
yarn
```

Isso deve baixar e instalar os pacotes que Delégua precisa para ser desenvolvida.

Delégua funciona em qualquer sistema operacional que tenha uma versão de Node.js compatível.

Para os fontes, usamos [TypeScript](https://www.typescriptlang.org/) (versão mais recente). Normalmente desenvolvemos em Visual Studio Code, e, ao abrir o projeto nele, já temos as configurações para depurar (debugar) Delégua. Outros editores podem ser usados, mas não temos arquivos de suporte a todos eles.

Nós usamos testes unitários para testar todos os componentes de Delégua. Nossa biblioteca de testes é a Jest: https://jestjs.io/. Não é preciso escrever testes unitários para contribuir com a linguagem.

### Trabalhando na sua modificação

Recomendamos fazer um _fork_ do projeto (ou seja, uma cópia em separado), modificar essa cópia e abrir uma _Pull Request_ da sua cópia para o repositório oficial. [Este vídeo pode ajudar](https://www.youtube.com/watch?v=l1rwvDvD1og).

Ao abrir uma _Pull Request_, fazemos alguns testes automatizados para verificar se sua modificação tem ou não problemas. Você pode fazer os mesmos testes no seu ambiente local usando o comando:

```bash
yarn testes
```

Isso testa a modificação com os exemplos de linguagem que temos no repositório. Para testar outros aspectos, use:

```bash
yarn testes-unitarios
```
Loading
Loading