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

Feature/update line numbers #243

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
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
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

All notable changes to the "turbo-console-log" extension will be documented in this file.

## [2.10.5]

### Fixed

- Improved Turbo Console Log to accurately insert log messages for variable assignments, specifically when a variable is assigned a value from a function call in TypeScript and JavaScript files.

## [2.10.4]

### Fixed
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 10 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "turbo-console-log",
"displayName": "Turbo Console Log",
"description": "Automating the process of writing meaningful log messages.",
"version": "2.10.4",
"version": "2.10.5",
"publisher": "ChakrounAnas",
"engines": {
"vscode": "^1.50.0"
Expand Down Expand Up @@ -115,6 +115,14 @@
"command": "turboConsoleLog.uncommentAllLogMessages",
"title": "Turbo Console Log: Uncomment All Log Messages"
},
{
"command": "turboConsoleLog.updateLogMessage",
"title": "Turbo Console Log: Update Log Messages at Selected Lines"
},
{
"command": "turboConsoleLog.updateAllLogMessages",
"title": "Turbo Console Log: Update All Log Messages"
},
{
"command": "turboConsoleLog.deleteAllLogMessages",
"title": "Turbo Console Log: Delete All Log Messages"
Expand Down Expand Up @@ -150,7 +158,7 @@
"esbuild-watch": "npm run esbuild-base -- --sourcemap --watch",
"watch": "npm run esbuild --watch",
"lint": "eslint src --ext ts",
"pretest": "yarn run esbuild-base",
"pretest": "npm run esbuild-base",
"test-compile": "rm -rf out && tsc -p ./ && mkdir out/test/files && cp -r src/test/files/ out/test/files/",
"test": "npm run test-compile && node ./out/test/runTests.js",
"test:unit": "npm run test-compile && mocha --require ts-node/register 'src/test/unit/**/*.test.ts'"
Expand Down
10 changes: 4 additions & 6 deletions src/commands/commentAllLogMessages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,10 @@ export function commentAllLogMessagesCommand(): Command {
return logFunction;
}

const editor: vscode.TextEditor | undefined =
vscode.window.activeTextEditor;
if (!editor) {
return;
}
const document: vscode.TextDocument = editor.document;
const editor = vscode.window.activeTextEditor;
if (!editor) return;

const document = editor.document;
const logMessages: Message[] = jsDebugMessage.detectAll(
document,
logFunctionToUse(),
Expand Down
5 changes: 5 additions & 0 deletions src/commands/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@ import { displayLogMessageCommand } from './displayLogMessage';
import { commentAllLogMessagesCommand } from './commentAllLogMessages';
import { uncommentAllLogMessagesCommand } from './uncommentAllLogMessages';
import { deleteAllLogMessagesCommand } from './deleteAllLogMessages';
import { updateAllLogMessagesCommand } from './updateAllLogMessages';
import { updateLogMessagesCommand } from './updateLogMessageComment';
import { Command } from '../entities';

export function getAllCommands(): Array<Command> {
return [
displayLogMessageCommand(),
commentAllLogMessagesCommand(),
uncommentAllLogMessagesCommand(),
deleteAllLogMessagesCommand(),
updateAllLogMessagesCommand(),
updateLogMessagesCommand(),
];
}
68 changes: 68 additions & 0 deletions src/commands/updateAllLogMessages.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import * as vscode from 'vscode';
import { DebugMessage } from '../debug-message';
import { Command, ExtensionProperties, Message } from '../entities';
import type { JSDebugMessage } from '../debug-message/js';

export function updateAllLogMessagesCommand(): Command {
return {
name: 'turboConsoleLog.updateAllLogMessages',
handler: async (
{
delimiterInsideMessage,
logMessagePrefix,
logFunction,
}: ExtensionProperties,
jsDebugMessage: DebugMessage,
args?: unknown[],
) => {
function logFunctionToUse(): string {
if (
args &&
args.length > 0 &&
typeof args[0] === 'object' &&
args[0] !== null
) {
const firstArg = args[0] as Record<string, unknown>;
if (
'logFunction' in firstArg &&
typeof firstArg.logFunction === 'string'
) {
return firstArg.logFunction;
}
return logFunction;
}
return logFunction;
}

const editor: vscode.TextEditor | undefined =
vscode.window.activeTextEditor;
if (!editor) {
return;
}
const document: vscode.TextDocument = editor.document;

const logMessages: Message[] = jsDebugMessage.detectAll(
document,
logFunctionToUse(),
logMessagePrefix,
delimiterInsideMessage,
);

editor.edit((editBuilder) => {
logMessages.forEach(({ spaces, lines }) => {
lines.forEach((line: vscode.Range) => {
const prevLine = document.getText(line).trim();
const newLine = (
jsDebugMessage as JSDebugMessage
).updateFileNameAndLineNum(prevLine, document, line.start.line + 1);
editBuilder.delete(line);
editBuilder.insert(
new vscode.Position(line.start.line, 0),
`${spaces}${newLine}\n`,
);
});
});
});
},
};
}
79 changes: 79 additions & 0 deletions src/commands/updateLogMessageComment.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import * as vscode from 'vscode';
import { DebugMessage } from '../debug-message';
import { Command, ExtensionProperties, Message } from '../entities';
import type { JSDebugMessage } from '../debug-message/js';

export function updateLogMessagesCommand(): Command {
return {
name: 'turboConsoleLog.updateLogMessage',
handler: async (
{
delimiterInsideMessage,
logMessagePrefix,
logFunction,
}: ExtensionProperties,
jsDebugMessage: DebugMessage,
args?: unknown[],
) => {
function logFunctionToUse(): string {
if (
args &&
args.length > 0 &&
typeof args[0] === 'object' &&
args[0] !== null
) {
const firstArg = args[0] as Record<string, unknown>;
if (
'logFunction' in firstArg &&
typeof firstArg.logFunction === 'string'
) {
return firstArg.logFunction;
}
return logFunction;
}
return logFunction;
}

const editor: vscode.TextEditor | undefined =
vscode.window.activeTextEditor;
if (!editor) {
return;
}
const document: vscode.TextDocument = editor.document;

const selections = editor.selections;
const logMessages: Message[] = jsDebugMessage.detectAll(
document,
logFunctionToUse(),
logMessagePrefix,
delimiterInsideMessage,
);

const selectedLogMessages = logMessages.filter((msg) =>
msg.lines.some((lineRange) => {
return selections.some((sel) => lineRange.intersection(sel));
}),
);

editor.edit((editBuilder) => {
selectedLogMessages.forEach(({ spaces, lines }) => {
lines.forEach((lineRange: vscode.Range) => {
const prevLine = document.getText(lineRange).trim();
const newLine = (
jsDebugMessage as JSDebugMessage
).updateFileNameAndLineNum(
prevLine,
document,
lineRange.start.line + 1,
);
editBuilder.delete(lineRange);
editBuilder.insert(
new vscode.Position(lineRange.start.line, 0),
`${spaces}${newLine}\n`,
);
});
});
});
},
};
}
Loading