Visual Studio Code Distilled: Evolved Code Editing for Windows, macOS, and Linux - Third Edition Alessandro Del Sole instant download
Visual Studio Code Distilled: Evolved Code Editing for Windows, macOS, and Linux - Third Edition Alessandro Del Sole instant download
https://ebookmass.com/product/visual-studio-code-distilled-
evolved-code-editing-for-windows-macos-and-linux-third-
edition-alessandro-del-sole/
https://ebookmass.com/product/international-fire-code-international-
code-council-series-2021-1st-edition-international-code-council/
https://ebookmass.com/product/international-zoning-code-international-
code-council-series-2018-international-code-council/
IBC International Building Code (International Code
Council Series) 2018 1st Edition International Code
Council
https://ebookmass.com/product/ibc-international-building-code-
international-code-council-series-2018-1st-edition-international-code-
council/
https://ebookmass.com/product/lets-code-it-2022-2023-code-edition-
shelley-safian/
https://ebookmass.com/product/international-swimming-pool-and-spa-
code-2021-1st-edition-international-code-council/
Visual Studio
Code Distilled
Evolved Code Editing for Windows,
macOS, and Linux
—
Third Edition
—
Alessandro Del Sole
Visual Studio Code
Distilled
Evolved Code Editing for Windows,
macOS, and Linux
Third Edition
Acknowledgments���������������������������������������������������������������������������������������������������xv
Introduction�����������������������������������������������������������������������������������������������������������xvii
v
Table of Contents
vi
Table of Contents
vii
Table of Contents
viii
Table of Contents
ix
Table of Contents
Index��������������������������������������������������������������������������������������������������������������������� 331
xi
About the Author
Alessandro Del Sole is a senior software engineer for a
healthcare company, building mobile apps for doctors and
dialysis patients. He has been in the software industry for
more than 20 years, focusing on Microsoft technologies
such as .NET, C#, Visual Studio, and Xamarin. He has been
a trainer, consultant, and a Microsoft MVP since 2008 and
is the author of many technical books. He is a Xamarin
Certified Mobile Developer, Microsoft Certified Professional,
and a Microsoft Programming Specialist in C#.
xiii
Acknowledgments
Thanks to Smriti Srivastava, Nirmal Selvaraj, Laura Berendson, and everyone else at
Apress for the opportunity, renewed trust, and the great teamwork on this book.
Special thanks to the technical editor Damien Foggon, who contributed to the
quality and accuracy of the content.
Special thanks to my wife Angelica, for her continuous and strong support.
xv
Introduction
One of the most common requirements in software development today is building
applications and services that run on multiple systems and devices, especially with the
continued expansion of cloud and artificial intelligence services, and of architectures
based on microservices.
Developers have many options for building cross-platform and cross-device
software, from languages to development platforms and tools. However, in most cases,
such tools rely on proprietary systems, which result in strong dependencies. Moreover,
most development tools target specific platforms and development scenarios. Microsoft
Visual Studio Code takes a step forward by providing a fully featured development
environment for Windows, macOS, and Linux that offers not only advanced coding
features but also integrated tools. These tools span across the entire application lifecycle,
from coding to debugging to team collaboration. The full tooling is consistent across
these languages and frameworks, natively or via extensions, so that developers share the
same experience regardless of the technology they use.
With .NET 7 and with .NET MAUI recently released, and with artificial intelligence
services becoming part of the modern software implementation, Visual Studio Code
becomes even more important to support cross-platform development on multiple
operating systems. In this book, developers with any skill level learn how to leverage
Visual Studio Code to target scenarios such as web, cloud, and mobile development
using the programming language of their choice. This book provides guidance on
building apps for any system and any device. This includes managing the application
lifecycle, as well as team collaboration.
xvii
CHAPTER 1
Note In this book, I refer to the product using its full name, Visual Studio Code, as
well as its friendly names, VS Code and Code, interchangeably.
1
© Alessandro Del Sole 2023
A. Del Sole, Visual Studio Code Distilled, https://doi.org/10.1007/978-1-4842-9484-0_1
Chapter 1 Introducing Visual Studio Code
as Node.js and .NET. It also has integrated support for a huge number of languages and
rich editing features such as IntelliSense, finding symbol references, quickly reaching a
type definition, and much more.
Visual Studio Code is based on Electron (https://electronjs.org/), a framework
for creating cross-platform applications with native technologies. It combines the
simplicity of a powerful code editor with the tools a developer needs to support the
application lifecycle development, including debuggers and version control integration
based on Git. Visual Studio Code is therefore a complete development tool, rather than
being a simple code editor. For a richer development experience, consider Microsoft
Visual Studio 2022 on Windows and Visual Studio 2022 for Mac on macOS, but Visual
Studio Code can be really helpful in many situations.
In this book, you learn how to use Visual Studio Code and how to get the most
out of it; you discover how you can use it as a powerful code editor and as a complete
environment for end-to-end development. Except where necessary to differentiate
operating systems, figures are based on Microsoft Windows 10, but typically there is
no difference in the interface on Windows 11, Linux, and macOS. Also, Visual Studio
Code includes several color themes that style its layout. In this book, figures display the
Light (Visual Studio) theme, so you might see different colors on your own screen if you
choose a different color theme. Chapter 5 explains how to change the theme, but if you
want to be consistent with the book’s figures, simply choose File ➤ Preferences ➤ Color
Theme and select the Visual Studio 2019 Light Theme. It is worth mentioning that the
theme you select does not affect the features described in this book.
2
Chapter 1 Introducing Visual Studio Code
create portable web applications. Forcing you to build cross-platform, portable web apps
with Microsoft Visual Studio 2022 would make you dependent on that specific integrated
development environment (IDE). This also applies to the (free) Visual Studio 2022
Community edition. Conversely, though Visual Studio Code certainly is not intended to
be a replacement for more powerful and complete environments, it can run on a variety
of operating systems and can manage different project types, as well as the most popular
languages. To accomplish this, Visual Studio Code provides the following core features:
In order to properly combine all these features into one tool, Visual Studio Code
provides a coding environment based on folders, which makes it easy to work with code
files that are not organized within projects and offers a unified way to work with different
languages. Starting with this assumption, Visual Studio Code offers an advanced editing
experience with features that are common to many supported languages, plus some
features that are available to specific languages. As you’ll learn throughout the book,
Code also makes it easy to extend its built-in features by supplying custom languages,
syntax coloring, editing tools, debuggers, and much more via a number of extensibility
points. It is a code-centric tool, with primary focus on web, cross-platform code. That
said, it does not provide all of the features you need for full, more complex application
development and application lifecycle management and it is not intended to be the best
choice with some development platforms. If you have to make a choice, consider the
following points:
• Visual Studio Code can produce binaries and executable files only if
the language you use has support to do so through a command-line
interface (CLI), a compiler, and a debugger. If you use a language
for which there is no extensive support (e.g., the open-source Go
programming language, https://golang.org), Visual Studio Code
3
Chapter 1 Introducing Visual Studio Code
If your requirements are different, consider Microsoft Visual Studio 2022 or Microsoft
Visual Studio 2022 for Mac instead, which are optimized for building, testing, deploying,
and maintaining multiple types of applications.
Now that you have a clearer idea of Code’s goals, you are ready to learn the amazing
editing features that elevate it above any other code editor.
4
Chapter 1 Introducing Visual Studio Code
Note Visual Studio Code can also run in Portable Mode, which means that
you can create a self-containing folder that can be moved across environments.
Since this is a very specific scenario, it isn’t covered in this book; you can read
the documentation (https://code.visualstudio.com/docs/editor/
portable) to learn the steps required to generate Portable Mode.
In the following sections, you learn some tips for installing Visual Studio Code on
various supported systems.
Note The latest stable release of Visual Studio Code at the time of this writing is
version 1.76.0, released in February 2023.
5
Chapter 1 Introducing Visual Studio Code
Note Some antivirus and system protection tools, such as Symantec Endpoint
Protection, might block the installation of some files that are recognized as false
positives. In most cases, this will not prevent Visual Studio Code from working, but
6
Chapter 1 Introducing Visual Studio Code
it is recommended that you disable the protection tool before installing Code or,
if you do not have elevated permissions, that you ask your administrator to do it
for you.
A specific dialog box will inform you once the installation process has completed.
The installation folder for the user-level installer is C:\Users\username\AppData\Local\
Programs\Microsoft VS Code, while the installation folder for the global installer is
C:\Program Files\Microsoft VS Code on 64-bit systems and C:\Program Files(x86)\
Microsoft VS Code on 32-bit systems. You will find a shortcut to Visual Studio Code in
the Start menu and on the Desktop, if you selected the option to create a shortcut during
the installation. When it starts, Visual Studio Code appears as shown in Figure 1-2.
7
Chapter 1 Introducing Visual Studio Code
8
Chapter 1 Introducing Visual Studio Code
9
10
Chapter 1
Introducing Visual Studio Code
Note If you are a Windows user and want to try Visual Studio Code on a Linux
distribution, you can create a virtual machine with the Hyper-V tool. For example,
you could install the latest Ubuntu version (https://www.ubuntu.com/
download/desktop) as an ISO image and use it as an installation media in
Hyper-V. On macOS, you need to purchase the Apple Parallels Desktop software
separately in order to create virtual machines, but you can basically do the same.
Localization Support
Visual Studio Code ships in English, but it can be localized in many other supported
languages and cultures. When it's started, VS Code checks for the operating system
language and, if it's different from English, it shows a popup message suggesting to
install a language pack for the culture of your operating system. The localization support
can be also enabled manually.
To accomplish this, choose View ➤ Command Palette. When the text box appears at
the top of the page, type the following command:
You can also just type configure display and the command will be automatically
listed in the command palette (see Figure 1-5).
11
Chapter 1 Introducing Visual Studio Code
When you click this command, the Command Palette displays the following options:
When you select a language pack, VS Code will download the appropriate package
and will show a message saying that a restart is required in order to localize the user
interface.
Note Because VS Code receives monthly updates, some features might have
been updated at the time of your reading, and others might be new. This is a
necessary clarification you should keep in mind while reading, and it is also the
reason that I also provide links to the official documentation, so that you can stay
up to date more easily.
Additionally, you can manually check for updates by choosing Help ➤ Check for
Updates on Windows and Linux or choosing Code ➤ Check for Updates on macOS. If
you do not want to receive automatic updates and prefer manual updates, you can
disable automatic updates by choosing File ➤ Preferences ➤ Settings. Then, in the
Update section of the Application settings group, disable the Background Updates
option. Figure 1-6 shows an example based on Windows. (Obviously, on macOS and
Linux, the Enable Windows Background Updates option is not available.)
12
Chapter 1 Introducing Visual Studio Code
You follow the same steps to re-enable updates in the background. Whenever Visual
Studio Code receives an update, you will receive a notification suggesting that you restart
Code in order to apply the changes. The first time you restart Visual Studio Code after an
update, you will see the release notes for the version that was installed, as demonstrated
in Figure 1-7.
13
Chapter 1 Introducing Visual Studio Code
Release notes contain the list of new and updated features, as well as hyperlinks that
will open the proper feature page in the documentation. You can recall release notes at
any time by choosing Help ➤ Show Release Notes.
14
Chapter 1 Introducing Visual Studio Code
Insiders builds and stable builds can work side by side without any issues. Because
each lives in its own environment, your setting customizations and extensions you
installed on the stable build will not be automatically available to the Insiders build and
vice versa, so you will need to provide them again.
Insiders builds are a very good way to see what is coming with Visual Studio Code,
but because they are not stable, final builds, it is not recommended you use them in
production or with code you will release to production.
15
Chapter 1 Introducing Visual Studio Code
When running in the browser, Visual Studio Code offers the same features available
on the regular desktop app. You can also fully customize your development environment
and experience, and changes will be saved into the local cache. This is a very interesting
alternative, but still in preview stage at the time of this writing.
16
Chapter 1 Introducing Visual Studio Code
S
ummary
Visual Studio Code is not a simple code editor, but a fully featured development
environment optimized for web, mobile, and cloud development. In this chapter, you
saw how to install Visual Studio Code on Windows, macOS, and Linux distributions,
learning how to select the appropriate installers and fine-tune the setup process. You
also saw how to configure localization and updates. Next, you looked at the Insiders
builds, which offer previews of upcoming, unreleased features. Finally, you saw Visual
Studio Code running in the browser as a web app, with the same features as the desktop
version.
Now that your environment is ready for use, it is time to start discovering the
amazing features offered by Visual Studio Code. The next chapter walks through the
environment, then in Chapter 3, you learn about all the amazing code-editing features
that make Visual Studio Code a rich, powerful crossplatform editor.
17
CHAPTER 2
Getting to Know
the Environment
Before you use Visual Studio Code as the editor of your choice, you need to know how
the workspace is organized and what commands and tools are available, in order to get
the most out of the development environment.
The VS Code user interface and layout are optimized to maximize the space for code
editing, and it also provides easy shortcuts to quickly access all the additional tools you
need in a given context. More specifically, the user interface is divided into five areas:
the code editor, the Status Bar, the Activity Bar, the Panels area, and the Side Bar. This
chapter explains how the user interface is organized and how you can be productive
using it.
Note All the features discussed in this chapter apply to any file in any language,
and they are available regardless of the language you see in the figures (normally
C#). You can open one or more code files via File ➤ Open File to access the editor
windows and explore the features discussed in this chapter. Then, Chapter 4
discusses more thoroughly how to work with individual files and multiple files, in
one or more languages, concurrently.
19
© Alessandro Del Sole 2023
A. Del Sole, Visual Studio Code Distilled, https://doi.org/10.1007/978-1-4842-9484-0_2
Chapter 2 Getting to Know the Environment
On the left side of the page, under the Start group, you find shortcuts for creating and
opening files and folders, and for cloning an existing Git repository. Under the Recent
group is a list of recently opened files and folders that you can click for fast opening.
Under the Walkthroughs group, there are useful links to product documentation,
tutorials, cheat sheets, introductory videos, and other learning resources about Visual
Studio Code.
By default, the Welcome page is set to appear every time you launch VS Code. To
change this default behavior, remove the check mark from the Show Welcome Page On
Startup check box. To re-enable the Welcome page on startup, choose Help ➤ Welcome
and add the check mark back.
20
Chapter 2 Getting to Know the Environment
• Press Ctrl+\ (or ⌘+\ on macOS) to split the editor into two.
21
Chapter 2 Getting to Know the Environment
Open editors can also be organized into groups. To accomplish this, you can drag
and drop the title of an open editor close to another one and they will be grouped in
the same space and the Explorer Bar will show the list of groups. You can quickly switch
between editors by pressing Ctrl+1, 2, and so on, until 9. Keep in mind this works with up
to nine editor windows. The code editor is the heart of Visual Studio Code and provides
tons of powerful productivity features that are discussed in detail in the next chapter. For
now, it is enough to know how to open and arrange editor windows.
22
Chapter 2 Getting to Know the Environment
The Status Bar contains the following information, from left to right:
• Tab size, in this case Spaces: 4. You can click this to change the
indentation size and to convert indentation to tabs or spaces.
It is worth mentioning that the color of the Status Bar changes depending on the
situation. For example, it is purple when you open a single file, blue when you open a
folder, and orange when Visual Studio Code is in debugging mode. Additionally, third-
party extensions might use the Status Bar to display their own information.
23
Chapter 2 Getting to Know the Environment
The Activity Bar provides shortcuts for the Explorer, Search, Git, Run and Debug,
Extensions, Accounts, and Settings tools, each described in the next section. When you
click a shortcut, the Side Bar related to the selected tool becomes visible. You can click
the same shortcut again to collapse the Side Bar.
24
Chapter 2 Getting to Know the Environment
clicking the ... button and then selecting Open Editors. It also includes open files that are
not part of a project, folder, or files that have been modified. These are instead shown in
a subview whose name is the folder or project name. Figure 2-5 provides an example of
Explorer.
25
Chapter 2 Getting to Know the Environment
You must hover your cursor over any file or folder to make the four buttons visible.
The subview that shows a folder structure provides four buttons (from left to right): New
File, New Folder, Refresh Explorer, and Collapse Folders in Explorer, each of which is
self-explanatory. The OPEN EDITORS subview has three buttons (which you get when
hovering over with the mouse): New Untitled Text File, Save All, and Close All Editors.
Right-clicking a folder or filename in Explorer provides a context menu that offers
common commands (such as Open to the Side, referenced earlier in this chapter). A very
interesting command is Reveal in File Explorer (or Reveal to Finder on Mac and Open
Containing Folder on Linux), which opens the containing folder for the selected item.
Notice that the Explorer icon in the Activity Bar also reports the number of unsaved files.
26
Chapter 2 Getting to Know the Environment
27
Chapter 2 Getting to Know the Environment
You can expand types and members defined in a markup file to see what other
objects they define, and you can click each item and get the cursor over the selected item
definition in the source code. It is worth mentioning that Visual Studio Code highlights
with a different color (red in the case of the Visual Studio Light Theme) items that have
potential problems and that are highlighted with squiggles in the code editor. Currently,
28
Chapter 2 Getting to Know the Environment
the Outline view is only available to languages such as JavaScript, TypeScript, C#,
HTML, Markdown, and JSON. Support for additional languages might be available when
installing the appropriate extensions.
Note The Timeline view is related to working with Git source control, the topic of
Chapter 7, but it is discussed here because it is part of the Explorer Bar. For now,
you can click the Source Control button on the Side Bar and then click the Initialize
Repository button. This initializes a local Git repository and, consequently, the
Timeline feature over individual files.
In this particular example, the Timeline is showing three changes in the file history:
a first local commit, changes saved to disk, and staged changes. This tool is very useful
when you work with Git source control, and you want to see a detailed view of the history
for each file. Chapter 7 provides detailed explanations about integrated source control
features.
29
Chapter 2 Getting to Know the Environment
30
Chapter 2 Getting to Know the Environment
Search results are presented in a hierarchical view that groups all the files that
contain the specified search key, showing an excerpt of the line of code that contains it.
Occurrences are also highlighted in both the list of files and in the code editor. You can
finally clean up search results by clicking the Clear Search Results button located in the
toolbar close to the SEARCH header. If you instead want to replace some text with new
text, you can do this by entering the new text into the Replace text box and then clicking
the Replace All button.
31
Chapter 2 Getting to Know the Environment
The Git Bar also provides a popup menu that contains the list of supported Git
commands in Visual Studio Code organized into submenus, such as Commit, Push,
Pull, and several more you discover later in the book. Click the … button in the top-right
corner of the Git Bar to open the menu.
32
Other documents randomly have
different content
pronounced by human lips,—nay, and to utter them,
when I am seemingly to blame!—yet, believe me, my
silence is not owing to negligence, or to that most wicked
of all sins, inconstancy. I have thought on you waking or
sleeping, whenever I have thought at all, from the
moment I saw you last; and if there was an echo in the
neighbourhood besides Mr. Cambridge, I should have
made it repeat your Ladyship’s name, till the parish
should have presented it for a nuisance. I have begun
twenty letters, but the naked truth is, I found I had
absolutely nothing to say. You yourself owned, Madam,
that I am grown quite lifeless, and it is very true. I am
none of your Glastonbury thorns that blow at Christmas. I
am a remnant of the last age, and have nothing to do
with the present. I am an exile from the sunbeams of
drawing-rooms; I have quitted the gay scenes of
Parliament and the Antiquarian Society; I am not of
Almack’s; I don’t understand horse-races; I never go to
reviews; what can I have to talk of? I go to no fêtes
champêtres, what can I have to think of? I know nothing
but about myself, and about myself I know nothing. I
have scarce been in town since I saw you, have scarce
seen anybody here, and don’t remember a tittle but
having scolded my gardener twice, which, indeed, would
be as important an article as any in Montaigne’s Travels,
which I have been reading, and if I was tired of his
Essays, what must one be of these! What signifies what a
man thought, who never thought of anything but himself;
and what signifies what a man did, who never did
anything?”
“Adieu!
“P.S. Arlington Street, 7th.
“I am just come to town, and find your letter.… The
approaching death of the Pope will be an event of no
consequence. That old mummery is near its conclusion, at
least as a political object. The history of the latter Popes
will be no more read than that of the last
Constantinopolitan Emperors. Wilkes is a more
conspicuous personage in modern story than the Pontifex
Maximus of Rome. The poll for Lord Mayor ended last
night; he and his late Mayor had above 1,900 votes, and
their antagonists not 1,500. It is strange that the more he
is opposed, the more he succeeds!”
More than one writer has cited Walpole’s traveller from Lima as the
original of Lord Macaulay’s traveller from New Zealand, who, in the
midst of a vast solitude, takes his stand on a broken arch of London
Bridge to sketch the ruins of St. Paul’s. Others have traced the passage
in the celebrated Review of Ranke’s “History of the Popes,” to Volney,
Mrs. Barbauld, Kirke White, and Shelley; while others again have
pointed out that, from whatsoever source derived, the idea expressed in
this passage had been twice before employed by Macaulay, once, in
1824, in a Review of Mitford’s “Greece,” and the second time, in 1829, in
his Review of Mill’s “Essay on Government.” The picture of the New
Zealander, however, resembles the less ambitious, but equally graphic,
figure of the traveller from Lima more closely than it does any of the
other passages referred to.[67] What is remarkable is, that the Review of
Ranke’s “History” appeared in October, 1840, whereas the later portion
of Walpole’s correspondence with Mann, to which the above extract
belongs, was first published from the original manuscripts in 1843. How
then could Macaulay know anything of the Peruvian stranger?[68]
The following was also addressed to Sir H. Mann. It is dated in May,
1775:
“You have not more Masquerades in Carnival than we
have; there is one at the Pantheon to-night, another on
Monday; and in June is to be a pompous one on the
water, and at Ranelagh. This and the first are given by
the Club called the Sçavoir Vivre, who till now have only
shone by excess of gaming. The leader is that fashionable
orator Lord Lyttelton,[69] of whom I need not tell you
more. I have done with these diversions, and enjoy
myself here. Your old acquaintance, Lord and Lady Dacre,
and your old friend, Mr. Chute, dined with me to-day:
poor Lord Dacre[70] is carried about, though not worse
than he has been these twenty years. Strawberry was in
great beauty; what joy I should have in showing it to you!
Is this a wish I must never indulge? Alas!
“I have had a long chain of thoughts since I wrote the
last paragraph. They ended in smiling at the word never.
How one pronounces it to the last moment! Would not
one think I counted on a long series of years to come?
Yet no man has the termination of all his views more
before his eyes, or knows better the idleness of framing
visions to one’s self. One passes away so soon, and
worlds succeed to worlds, in which the occupiers build the
same castles in the air. What is ours but the present
moment? And how many of mine are gone! And what do
I want to show you? A plaything-vision, that has amused
a poor transitory mortal for a few hours, and that will
pass away like its master! Well, and yet is it not as
sensible to conform to common ideas, and to live while
one lives? Perhaps the wisest way is to cheat one’s self.
Did one concentre all one’s thoughts on the nearness and
certainty of dissolution, all the world would lie eating and
sleeping like the savage Americans. Our wishes and views
were given us to gild the dream of life, and if a
Strawberry Hill can soften the decays of age, it is wise to
embrace it, and due gratitude to the Great Giver to be
happy with it. The true pain is the reflection on the
numbers that are not so blessed; yet I have no doubt but
the real miseries of life—I mean those that are unmerited
and unavoidable,—will be compensated to the sufferers.
Tyrants are a proof of an hereafter. Millions of men cannot
be formed for the sport of a cruel child.
“How happy is the Pretender in missing a Crown! When
dead, he will have all the advantage that other Kings
have, the being remembered; and that greater
advantage, which Kings who die in their childhood have,
historians will say, he would have been a great King if he
had lived to reign; and that greatest advantage which so
very few of them have, his reign will be stained with no
crimes and blunders. If he is at Florence, pray
recommend me to him for his historian; you see I have all
the qualities a Monarch demands, I am disposed to flatter
him. You may tell him too what I have done for his uncle
Richard III. The mischief is in it, if I am not qualified for a
Royal Historiographer, when I have whitewashed one of
the very few whom my brethren, so contrary to their
custom, have agreed to traduce.”
At the end of 1775, Sir Horace Mann’s elder brother died, the family
estate came to the Ambassador, and Walpole flattered himself “that a
regular correspondence of thirty-four years will cease, and that I shall
see him again before we meet in the Elysian fields.” He was
disappointed. In February, 1776, he writes to his old friend: “You have
chilled me so thoroughly by the coldness of your answer, and by the
dislike you express to England, that I shall certainly press you no more
to come. I thought at least it would have cost you a struggle.” Again, a
little later: “Pray be assured, I acquiesce in all you say on your own
return, though grieved at your resolution, and more so at the necessity
you find in adhering to it. It is not my disposition to prefer my own
pleasure to the welfare of my friends. Your return might have opened a
warm channel of affection which above thirty years could not freeze; but
I am sure you know my steadiness too well to suspect me of cooling to
you, because we are both grown too old to meet again. I wished that
meeting as a luxury beyond what old age often tastes; but I am too well
prepared for parting with everything to be ill-humouredly chagrined
because one vision fails.” In July, 1776, we find the following, also
addressed to Mann:
“I did flatter myself with being diverted at your surprise
from so general an alteration of persons, objects,
manners, as you would have found; but there is an end of
all that pleasing vision! I remember when my father went
out of place, and was to return visits, which Ministers are
excused from doing, he could not guess where he was,
finding himself in so many new streets and squares. This
was thirty years ago. They have been building ever since,
and one would think they had imported two or three
capitals. London could put Florence into its fob-pocket;
but as they build so slightly, if they did not rebuild, it
would be just the reverse of Rome, a vast circumference
of city surrounding an area of ruins. As its present
progress is chiefly north, and Southwark marches south,
the metropolis promises to be as broad as long. Rows of
houses shoot out every way like a polypus; and, so great
is the rage of building everywhere, that, if I stay here a
fortnight, without going to town, I look about to see if no
new house is built since I went last. America and France
must tell us how long this exuberance of opulence is to
last! The East Indies, I believe, will not contribute to it
much longer. Babylon and Memphis and Rome, probably,
stared at their own downfall. Empires did not use to
philosophise, nor thought much but of themselves. Such
revolutions are better known now, and we ought to
expect them—I do not say we do. This little island will be
ridiculously proud some ages hence of its former brave
days, and swear its capital was once as big again as Paris,
or—what is to be the name of the city that will then give
laws to Europe?—perhaps New York or Philadelphia.”
ebookmasss.com