891 từ
4 phút đọc
Ví Dụ Expressive Code

Ở đây, chúng ta sẽ khám phá cách các khối mã hiển thị bằng Expressive Code. Các ví dụ được cung cấp dựa trên tài liệu chính thức, bạn có thể tham khảo để biết thêm chi tiết.

Expressive Code#

Tô Màu Cú Pháp#

Tô Màu Cú Pháp

Tô màu cú pháp thông thường#

console.log('Mã này được tô màu cú pháp!')

Hiển thị chuỗi thoát ANSI#

Terminal window
Màu ANSI:
- Thường: Đỏ Xanh lá Vàng Xanh dương Tím Xanh cyan
- Đậm: Đỏ Xanh lá Vàng Xanh dương Tím Xanh cyan
- Mờ: Đỏ Xanh lá Vàng Xanh dương Tím Xanh cyan
256 màu (hiển thị màu 160-177):
160 161 162 163 164 165
166 167 168 169 170 171
172 173 174 175 176 177
Màu RGB đầy đủ:
ForestGreen - RGB(34, 139, 34)
Định dạng văn bản: Đậm Mờ Nghiêng Gạch chân

Khung Trình Soạn Thảo & Terminal#

Khung Trình Soạn Thảo & Terminal

Khung trình soạn thảo mã#

my-test-file.js
console.log('Ví dụ thuộc tính Title')

src/content/index.html
Ví dụ bình luận tên tệp

Khung terminal#

Terminal window
echo "Khung terminal này không có tiêu đề"

Ví dụ terminal PowerShell
Write-Output "Cái này có tiêu đề!"

Ghi đè loại khung#

echo "Nhìn này, không có khung!"

PowerShell Profile.ps1
# Nếu không ghi đè, đây sẽ là khung terminal
function Watch-Tail { Get-Content -Tail 20 -Wait $args }
New-Alias tail Watch-Tail

Đánh Dấu Văn Bản & Dòng#

Đánh Dấu Văn Bản & Dòng

Đánh dấu toàn bộ dòng & phạm vi dòng#

// Dòng 1 - được đánh dấu bằng số dòng
// Dòng 2
// Dòng 3
// Dòng 4 - được đánh dấu bằng số dòng
// Dòng 5
// Dòng 6
// Dòng 7 - được đánh dấu bằng phạm vi "7-8"
// Dòng 8 - được đánh dấu bằng phạm vi "7-8"

Chọn loại đánh dấu dòng (mark, ins, del)#

line-markers.js
function demo() {
console.log('dòng này được đánh dấu là đã xóa')
// Dòng này và dòng tiếp theo được đánh dấu là đã thêm
console.log('đây là dòng thứ hai được thêm vào')
return 'dòng này sử dụng loại đánh dấu mặc định trung tính'
}

Thêm nhãn cho đánh dấu dòng#

labeled-line-markers.jsx
<button
role="button"
{...props}
value={value}
className={buttonClassName}
disabled={disabled}
active={active}
>
{children &&
!active &&
(typeof children === 'string' ? <span>{children}</span> : children)}
</button>

Thêm nhãn dài trên dòng riêng#

labeled-line-markers.jsx
<button
role="button"
{...props}
value={value}
className={buttonClassName}
disabled={disabled}
active={active}
>
{children &&
!active &&
(typeof children === 'string' ? <span>{children}</span> : children)}
</button>

Sử dụng cú pháp giống diff#

dòng này sẽ được đánh dấu là đã thêm
dòng này sẽ được đánh dấu là đã xóa
đây là dòng thông thường

--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+đây là một tệp diff thực tế
-tất cả nội dung sẽ không bị sửa đổi
không có khoảng trắng nào bị loại bỏ

Kết hợp tô màu cú pháp với cú pháp giống diff#

function thisIsJavaScript() {
// Toàn bộ khối này được tô màu như JavaScript,
// và chúng ta vẫn có thể thêm đánh dấu diff!
console.log('Mã cũ cần xóa')
console.log('Mã mới sáng bóng!')
}

Đánh dấu văn bản riêng lẻ trong dòng#

function demo() {
// Đánh dấu bất kỳ văn bản nào trong dòng
return 'Nhiều kết quả khớp của văn bản đã cho được hỗ trợ';
}

Biểu thức chính quy#

console.log('Các từ yesyep sẽ được đánh dấu.')

Thoát dấu gạch chéo#

Terminal window
echo "Test" > /home/test.txt

Chọn loại đánh dấu trong dòng (mark, ins, del)#

function demo() {
console.log('Đây là các loại đánh dấu đã chènđã xóa');
// Câu lệnh return sử dụng loại đánh dấu mặc định
return true;
}

Ngắt Dòng Tự Động#

Ngắt Dòng Tự Động

Cấu hình ngắt dòng theo khối#

// Ví dụ với ngắt dòng
function getLongString() {
return 'Đây là một chuỗi rất dài có thể sẽ không vừa với không gian có sẵn trừ khi container cực kỳ rộng'
}

// Ví dụ với wrap=false
function getLongString() {
return 'Đây là một chuỗi rất dài có thể sẽ không vừa với không gian có sẵn trừ khi container cực kỳ rộng'
}

Cấu hình thụt lề cho dòng ngắt#

// Ví dụ với preserveIndent (được bật mặc định)
function getLongString() {
return 'Đây là một chuỗi rất dài có thể sẽ không vừa với không gian có sẵn trừ khi container cực kỳ rộng'
}

// Ví dụ với preserveIndent=false
function getLongString() {
return 'Đây là một chuỗi rất dài có thể sẽ không vừa với không gian có sẵn trừ khi container cực kỳ rộng'
}

Phần Có Thể Thu Gọn#

Phần Có Thể Thu Gọn

5 collapsed lines
// Tất cả mã thiết lập boilerplate này sẽ được thu gọn
import { someBoilerplateEngine } from '@example/some-boilerplate'
import { evenMoreBoilerplate } from '@example/even-more-boilerplate'
const engine = someBoilerplateEngine(evenMoreBoilerplate())
// Phần mã này sẽ hiển thị theo mặc định
engine.doSomething(1, 2, 3, calcFn)
function calcFn() {
// Bạn có thể có nhiều phần thu gọn
3 collapsed lines
const a = 1
const b = 2
const c = a + b
// Phần này sẽ vẫn hiển thị
console.log(`Kết quả tính toán: ${a} + ${b} = ${c}`)
return c
}
4 collapsed lines
// Tất cả mã này đến cuối khối sẽ được thu gọn lại
engine.closeConnection()
engine.freeMemory()
engine.shutdown({ reason: 'Kết thúc ví dụ mã boilerplate' })

Số Dòng#

Số Dòng

Hiển thị số dòng theo khối#

// Khối mã này sẽ hiển thị số dòng
console.log('Lời chào từ dòng 2!')
console.log('Tôi đang ở dòng 3')

// Số dòng bị tắt cho khối này
console.log('Xin chào?')
console.log('Xin lỗi, bạn có biết tôi đang ở dòng nào không?')

Thay đổi số dòng bắt đầu#

console.log('Lời chào từ dòng 5!')
console.log('Tôi đang ở dòng 6')

Advertisement

Ví Dụ Expressive Code
https://minixium.com/vi/posts/expressive-code-vi/
Tác giả
Minixium
Đăng vào lúc
2024-04-10
Giấy phép bản quyền
CC BY-NC-SA 4.0

Advertisement